سؤال

لقد كنت أستخدم أدناه لتحويل اللون

    if @image.colorspace == Magick::CMYKColorspace
      # @image.colorspace #=> CMYKColorspace=12
      @image.colorspace = Magick::RGBColorspace
      @image = @image.negate
    end

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

تذكر الوثائق باستخدام Color_Profiles، ولكن بعد ذلك لا أستطيع العثور على الكثير.

أنا الآن أحاول

@image = @image.quantize(16777216, Magick::RGBColorspace)

والألوان أفضل، ولكن لا يزال خارج.

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

المحلول

شكرا Pekka، أنت تخلصني إلى الإجابة (+1).

يجب أن يكون لديك imagemagick جمعت مع نظام إدارة الألوان الصغيرة (LCMS) المثبتة. قد يكون هذا هو الحال بالفعل إذا تم استخدام مثبت أو حزمة. لكنني كنت أروع من المصدر. كان بسيطة مثل تثبيت LCMS من المصدر وإعادة بناء ImageMagick (./configure; make; make install).

في ImageMagick، يعمل أدناه بشكل جيد لإعادة إنتاج اللون الدقيق:

convert FILENAME -profile /PATH_TO_PROFILE/sRGB.icm OUT.jpg

لذلك في rmagick أستخدم أدناه:

if @image.colorspace == Magick::CMYKColorspace
   # Adjust the path as necessary
   @image.color_profile ="/usr/local/share/ImageMagick-6.5.4/config/sRGB.icm"
end

@image.write("out.jpg") { self.quality = 85 }

نصائح أخرى

لقد قضيت وقتا طويلا في محاولة للانتقال من CMYK EPS إلى PNG RGB باستخدام Rmagick والقضبان. نأمل أن يكون هذا مفيدا لشخص ما:

def convert_image_from_cmyk_to_rgb( image )
  #puts image.alpha?
  if image.colorspace == Magick::CMYKColorspace
    image.strip!
    image.add_profile("#{Rails.root}/lib/USWebCoatedSWOP.icc")
    image.colorspace == Magick::SRGBColorspace
    image.add_profile("#{Rails.root}/lib/sRGB.icc")
  end
  image
end

يمكنك تنزيل ملفات ICC مباشرة من Adobe في http://www.adobe.com/support/downloads/iccprofiles/iccprofiles_win.html.

الشيء الوحيد الذي لم أتمكن من سوس هو كيفية الحفاظ على الشفافية. لدى EPS أريد استخدامها خلفية شفافة يتم تحويلها إلى أبيض. لسوء الحظ لا أستطيع أن أفعل شيئا مثل image.transparent( "white" ) كما لدي أبيض في الصورة التي أريد الاحتفاظ بها أبيض.

إذا كنت غير uncomment puts image.alpha? في الكود أعلاه يعود false.

هل يعرف أحد إذا كان ما أحاول القيام به هو ممكن مع الإصدار الحالي من RMAGICK، حيث أنني بدأت أتساءل عما إذا كان استيراد CMYK EPSS بالشفافية غير مدعوم.

شكرًا!

الملفات الواردة، في هذه الحالة، لديك ملف تعريف. سأحقق بعض أكثر. لقد فقدت مع ملفات تعريف الألوان (مثل أين أقوم بتنزيلها؟ لم يكن موقع ICC الكثير من المساعدة)

أنت لست الوحيد الخلط؛ انا أيضا كنت كذلك. هناك مناقشات حول موقع ImageMagick الذي قد يستحق Siftirng من خلال: هنا فيما يتعلق بالظهر بعد ذلك، من الممكن تحديد العمل بشكل صحيح مع ملفات التعريف عند تحديد ملف التعريف المستخدم (مثل ملف تعريف مراقب) أو مضمن في الملف (والذي يمكن القيام به على الأقل بالنسبة إلى TIFF و JPG في Photoshop، على ما أعتقد) وبعد تحقق على سبيل المثال هذا: هنا. وبعد حظا طيبا وفقك الله.

لقد وجدت أن حل سطر الأوامر من منظمة الصحة العالمية يعمل بشكل جميل، لكن محلول Rmagick لم يعمل بالنسبة لي.

للحصول عليه للعمل في Rmagick، أنا بدلا من ذلك، اضطررت إلى استخدام طريقة Magick :: Image # add_format، والتي، وفقا للمستندات، ستتيح لك تحديد ملف تعريف مصدر وجهة. تبدو هكذا:

if img.colorspace == Magick::CMYKColorspace
  img.add_profile(RGB_COLOR_PROFILE)
end 

إعادة: LCMS على Centos 5.5، تأكد من تنزيل وبناء أحدث LCMS من المصدر (مقابل تثبيت YUM). خلاف ذلك، لن تجد IM LCMS في Build وستخدش رأسك، مثلي، أتساءل لماذا لا يتم تضمين LCMS في LIBs المندوب.

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