تبدیل فضای رنگی برای JPEG از طریق پروفایل ICC

مدیریت رنگ برای فرمت JPEG

این مقاله در مورد استفاده از پروفایل‌های ICC برای انجام مدیریت فضای رنگی در هنگام ردیابی فرمت JPEG با استفاده از API‌های Aspose.PSD است. فضای رنگی داخلی JPEG YCbCr است، با این حال این فرمت همچنین می‌تواند فضای‌های رنگی Grayscale، RGB، CMYK و YCCK را برای ذخیره‌سازی متادیتای تصویر پذیرا باشد. API‌های Aspose.PSD اصولاً در فضای RGB عمل می‌کنند بنابراین API باید تبدیل فضای رنگی به صورت هم رفته و برگشتی انجام دهد تا به درستی فایل‌های JPEG را کنترل کند. تبدیل‌های از Grayscale به RGB و از YCbCr به RGB می‌تواند با تبدیل‌های ریاضی انجام شود اما فضاهای CMYK و YCCK نمی‌توانند به راحتی به فضای RGB تبدیل شوند.

API‌های Aspose.PSD باید تبدیل رنگ RGB به CMYK را مستقیماً برای تصاویر JPEG با فضای رنگی CMYK انجام دهند. از سوی دیگر، تصاویری که فضای رنگی YCCK دارند نیاز به تبدیل رنگ از RGB به CMYK به YCCK دارند، جایی که تبدیل CMYK به YCCK از تبدیل ITU-R BT.601 برای سه کانال اول استفاده می‌کند و کانال k را ناخالص می‌گذارد. به طور خلاصه، API‌های Aspose.PSD باید تبدیل فضای رنگی RGB به CMYK را برای تصاویر هر دو CMYK و YCCK انجام دهند و چنین تبدیل‌هایی با کمک پروفایل‌های ICC انجام می‌شوند که اساساً جدول‌های جستجو هستند که خواص یک رنگ را توصیف می‌کنند و در تبدیل‌های رنگی کمک می‌کنند.

پروفایل‌های ICC

مکانیزم تبدیل ICC از “پروفایل‌ها” استفاده می‌کند که فضای رنگی منبع را به فضای رنگی مستقل از دستگاه CIELAB یا CIEXYZ نقشه‌برداری می‌کنند. Aspose.PSD می‌تواند داده را به فضای رنگی مورد نیاز تبدیل کند در حالی که از این دو فضای رنگی با پروفایل‌های اضافی استفاده می‌کند. بنابراین، برای تبدیل ICC، کاربر نیاز به ارائه دو پروفایل دارد - یک پروفایل RGB برای رسیدن به فضای رنگی CIE داخلی و یک پروفایل CMYK برای دریافت ویژگی‌های رنگی CMYK. برای دستیابی به تبدیل CMYK به RGB، نیاز به جابجا کردن پروفایل‌ها است، به این معنی که از پروفایل CMYK به عنوان پروفایل منبع و از پروفایل RGB به عنوان پروفایل مقصد استفاده می‌کند.

تبدیل رنگی برای JPEG از طریق پروفایل ICC

API‌های Aspose.PSD جزئیات را پنهان می‌کنند و یک مکانیزم آسان برای مشخص کردن پروفایل‌های ICC از طریق کلاس JpegOptions ارائه می‌دهند. علاوه بر این، Aspose.PSD از پروفایل‌های نمونه SWOP CMYK و sRGB که به هسته آن تعبیه شده‌اند استفاده می‌کند بنابراین در اکثر موارد استفاده معمولی، کاربر نیازی به جستجوی هر پروفایل خاصی ندارد. یک ضعف از این اصلاحات وجود دارد و آن این است که چنین تبدیل‌هایی قابل برگشت نیستند زیرا نمی‌توانیم انتظار داشته باشیم که پس از تبدیل RGB به CMYK به RGB، همان رنگ را دریافت کنیم زیرا به دلیل فضاهای رنگی ناسازگار و پروفایل‌های رنگی متفاوت این امکان وجود ندارد. قطعه کد زیر نحوه استفاده از Aspose.PSD برای API فضای Java جهت مشخص کردن پروفایل‌های رنگی RGB و CMYK برای تصویر JPEG YCCK را نشان می‌دهد. در مثال زیر پروفایل‌های رنگی RGB و CMYK تغییر می‌کند و تصویر به فضای رنگی YCCK ذخیره می‌شود. لطفاً توجه داشته باشید که ویژگی‌های RgbColorProfile و CmykColorProfile برای تغییر داده‌های پیکسل برای فضای رنگی YCCK کار می‌کنند. همه فضاهای رنگی دیگر پروفایل‌های رنگی را برای به‌روزرسانی داده‌های رنگی بدست نمی‌آورند.

اگر هیچ پروفایلی تنظیم نشده باشد، آنگاه Aspose.PSD برای API Java از پروفایل‌های پیش‌فرض استفاده می‌کند. مثال زیر از ویژگی‌های پروفایل‌های مقصد استفاده می‌کند که فضای رنگی مقصد را برای اکثر JpegImages تغییر می‌دهد.