سؤال

أحتاج إلى توليد الصور المصغرة والمتوسطة الحجم من الصور الكبيرة. هذه الصور الأصغر هذه للعرض في معرض عبر الإنترنت. يقدم العديد من المصورين صورا JPEG باستخدام Adobe RGB. أرغب في استخدام SRGB لجميع الصور المصغرة والصور المتوسطة الحجم

أنا أستخدم DOTNET (ASP.NET) وتحتاج إلى طريقة للتحويل من Adobe RGB إلى SRGB دون أن تفقد أي جودة.

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

المحلول

معلومات أساسية: ملفات JPG لديها 8 بت من الأحمر والأخضر والأزرق، سواء كان SRGB أو Adobe RGB أو RGB عادي. واصف المحكمة الجنائية الدولية يحدد مساحة اللون. في بعض الأحيان يكون هذا جزءا لا يتجزأ من ملف JPG. في بعض الأحيان هناك علم لتعيين SRGB، Colorpace Colorpace Tag A001 = 1. لا يوجد علم قياسي ل Adobe RGB، ولكن تستخدم بعض التطبيقات والكاميرات 65535 (غير معبرة) ل Adobe RGB في علامة Exif A001.

لتحويل ملف JPG من ملف تعريف ICC (ColorsPace) إلى آخر، يمكنك استخدام CreateColorransform لإنشاء Transement بين المساحات الملونة. ستحتاج إلى توفير ملف تعريف المحكمة الجنائية الدولية للمصدر (Adobe RGB) ومساحات لون الوجهة (SRGB).

بعد أن يكون لديك التحويل، استخدم TranslateBitMapbits لضبط البكسل. قد يكون من الأسهل العمل مع الصورة ك dibsection.

قد يكون هذا مجمعا بعض الشيء للكتابة في .asp، لذلك قد يكون من الأسهل استخدام مكتبة رسومات تقوم بذلك.

نصائح أخرى

إلقاء نظرة على colorconvertedbitmap الفئة.

يجب عليك استخدام Imagemagic -الملف الشخصي الخيار، أعتقد أن خيار -Colorspace لن يساعدك هناك.

convert image.jpg -profile sRGB.icc rgb_image.jpg

بدلا من ذلك يمكنك البحث عن محرك إدارة الألوان الصغيرة

القي نظرة على فصول تحويل الصورة النقطية التي لديها عينة قصيرة من استخدام فئة ColorConvertedBitMap مع ملف تعريف.

على جانب الخادم، يمكنك الاتصال ب ImageMagick واسمح لها بالتحويل لك.

إليك رابط لخيار سطر الأوامر -colorspace

لم أستخدم هذا الخيار بالذات، ولكن يبدو أنه يفعل ما تريد.

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