سؤال

نحن نحتفظ بقاعدة بيانات لوسائط الصور في تطبيق ويب واسع النطاق.تكون ملفات jpg عالية الدقة كبيرة الحجم (> 15 ميجا بايت) ويجب عدم إتاحتها للتنزيل بأي شكل من الأشكال.نحتاج الآن إلى توفير الوصول إلى تفاصيل (اقتصاصات) الصور للعملاء (مثل وظيفة التكبير).يجب أن يرى العميل نسخة منخفضة الحجم من الصورة وأن يكون قادرًا على تحديد منطقة منها ليتم عرضها في وضع النطاق الكامل (100%).

كيف يمكن تنفيذ ذلك بالطريقة الأكثر أداءً (حركة المرور ووحدة المعالجة المركزية)؟نحن منفتحون على أي حل طالما ظل ملف الصورة عالي الدقة محميًا.تم تطوير التطبيق في C# و.net Framework 3.5.

أيه أفكار؟شكرا لك مقدما!

هل كانت مفيدة؟

المحلول

وأول شيء سوف تحتاج إلى القيام به هو ضغط والعلامة المائية على الصور قبل تحميلها على الخادم. ثم تقديم تلك للمستخدم. وهذا سوف يستغرق أقل موارد وحدة المعالجة المركزية لأنها الصور سوف تكون ثابتة.

وأنا شخصيا ثم اقتصاص الصور للإصدارات بالحجم الكامل ووضعها على طول الجانب منها مضغوط. بهذه الطريقة يمكن للعميل الحصول على صورة من الصورة الكاملة (ولو مضغوطة ووضع علامة مائية) جنبا الى جنب مع عينة صغيرة من مرحبا الدقة النسخة الكاملة.

وربما كنت ترغب في تجنب على ذبابة معالجة الصور إلا إذا كان لديك عدد قليل من العملاء والخادم سمين جدا.

نصائح أخرى

وأود أن تخدم نسخة منخفضة الدقة من صورة إلى المتصفح وهافا واجهة المستخدم المحاصيل العميل من شأنها أن ثم إرسال الطلب مرة أخرى إلى الخادم الذي سوف المحاصيل من اختيار وإرساله مرة أخرى في دقة عالية.

وكما قلت لأبي (أن لا يفهم كيف يعمل الإنترنت)، إذا كنت يمكن أن نرى ذلك على صفحة ويب، يمكنك حفظه، انها مجرد مسألة كيفية القيام بذلك.

وهناك إصدار اياكس من أعماق التكبير التي قد ترغب - انظر التنين:

http://livelabs.com/seadragon-ajax/gallery/

ويقدم للمستخدم مع نسخة منخفضة الدقة من الصورة؛ يمكنهم ثم تكبير أي جزء منه أن يحلو لهم.

أولا أود قبل تقديم إصدارات وضع علامة مائية على جميع الصور بالحجم الكامل حفظها في شكل ملف مضغوط، وكذلك الإصدارات قبل المقدمة الدقة المنخفضة.

وأود أن تكون منخفضة الدقة صور للتصفح. ثم صورة عالية الدقة وضع علامة مائية للمستخدم لإنشاء محاصيلهم.

وعند نقطة تأكيد كنت أود أن يكون مخصص الخادم معالجة الصور الثانية التي اقتصاص صورة غير علامة مائية، أصدر الصورة التي تم قصها لخادم الويب التي أرسلت إلى العميل.

وأن يقال، فإنه لا يزال من الممكن لإنشاء برنامج نصي جانب العميل أن يزرع الأجزاء المزروعة وستيشد معا لإنشاء نسخة بالحجم الكامل من غير علامة مائية صورة.

يجب ألا تتوفر للتنزيل بأي شكل من الأشكال.

يتعارض مع:

يجب أن يرى العميل نسخة من الصورة من الصورة وأن يكون قادرًا على تحديد مساحة منه ليتم مشاهدتها في الوضع الكامل (100 ٪).

...عند النقطة التي تسمح فيها بعرض جميع مناطق الصورة بدقة كاملة، يمكن تجميع الصورة بأكملها معًا.لذلك فأنت تتيح بشكل فعال (وإن كان ذلك غير مريح للغاية) الصورة بالحجم الكامل.

لكن لا شيء من هذا يساعدك على تحقيق الهدف.

الطريقة التي سأفعل بها ذلك هي تقديم نسخة تحمل علامة مائية بدقة 72 نقطة في البوصة لاستخدامها في تحديد منطقة الصورة المراد تنزيلها.يمكنك توسيع نطاق هذا إلى نسبة مئوية من النسخة الأصلية إذا كانت مساحة الشاشة تمثل مشكلة.اطلب من المستخدم اختيار الإحداثيات العلوية اليسرى واليمنى السفلية.ثم استخدم شيئًا مثل imagemagick لنسخ هذه المنطقة من النسخة الأصلية ليتم تقديمها للمستخدم.

إذا كنت بحاجة إلى الحفاظ على الموارد، فيمكنك مطالبة المستخدمين بالتنزيل من شبكة محددة مسبقًا، لذلك يتم اختيار تنسيق الشبكة 14:11 لأول مرة، ويتم كتابة image_1411_crop.jpg إلى نظام الملفات، وفي المرة التالية التي يتم فيها تحديد هذا التنسيق، الملف موجود بالفعل.

يحرر: اقرأ بعض تعليقاتك على الإجابات الأخرى ...

بغض النظر عن الطريقة التي تتبعها في الإنشاء والتخزين المؤقت على جانب الخادم، فسوف تستخدم نفس مقدار النطاق الترددي وحركة المرور.إن ملف jpeg بحجم 300 نقطة في البوصة هو ملف jpeg بحجم 300 نقطة في البوصة بغض النظر عما إذا كان قد تم إنشاؤه للتو أو أنه موجود في نظام الملفات.

عليك معرفة ما إذا كنت بحاجة إلى الحفاظ على مساحة وحدة المعالجة المركزية أو القرص.إذا كان لديك مليون جيجا من الصور وأربعين مستخدمًا فقط، فيمكنك تحمل تكلفة استخدام وحدة المعالجة المركزية.إذا كان لديك أربعين جيجا من الصور ومليون مستخدم، فاختر محرك الأقراص الثابتة (HDD).

سأستخدم S3 للتخزين.قم بإنشاء مجموعتين (محميتين بشكل عام)، وقم بإعطاء عنوان url لصور المجموعة المحمية بمجرد السماح للمستخدم بتنزيلها.يمكن جعل عناوين URL الخاصة بـ S3 مريحة مع تاريخ انتهاء الصلاحية.

مع الصور بحجم 15 ميجابايت، ستدرك على الأرجح أنك بحاجة إلى إنشاء النسخة المعدلة/المقتصة مسبقًا مسبقًا.

سأستخدم علامة مائية من نوع ما على جميع الملفات باستثناء الملف الأصلي.(مثل خرائط جوجل)

[يحرر:تمت إضافة تكبير عميق للتكبير]

تحقق من سيلفرلايت تكبير عميق لإدارة الاقتصاص والتكبير (تجريبي).لديهم حتى جدوى لتوليد كافة الصور التي تم اقتصاصها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top