我在ruby中使用以下代码将psds生成为jpgs -
process_file = abc.psd[0]
jpg_file = abc.jpg
system ("convert #{process_file} "\
"-profile '#{Rails.root}/lib/folder_name/AdobeRGB1998.icc' "\
"-profile '#{Rails.root}/lib/folder_name/sRGB_IEC61966-2-1_black_scaled.icc'"\
"-scale 3072x3072 -quiet #{jpg_file} ")
但是对于少数psds,生成的jpgs是服务器中的空白图像。经过一些研究,我发现了-flatten
的一种方法,但它并不总能获得正确的结果。那么,是否有一个适合所有的解决方案,适用于任何psds层(以及任何大小的psd)。任何对上述代码的调整都表示赞赏。
当我使用flatten时,代码会发生变化:
process_file = abc.psd
jpg_file = abc.jpg
system ("convert #{process_file} "\
"-profile '#{Rails.root}/lib/folder_name/AdobeRGB1998.icc' "\
"-profile '#{Rails.root}/lib/folder_name/sRGB_IEC61966-2-1_black_scaled.icc' "\
"-flatten -scale 3072x3072 -quiet #{jpg_file} ")
答案 0 :(得分:2)
我不确定这一点,但我怀疑它与预览有关。
我相信Adobe通常会在PSD
中创建整个文档的预览作为第一个“图层”,如果没有嵌入式预览,您的脚本可能会失败,那么您需要让 ImageMagick 收集所有图层并将它们展平成一个统一的整体图像。
我建议您检查 Photoshop 中的选项是否嵌入预览。对不起,这不是我最具体的答案,但它可能有所帮助。