我写了一个ruby脚本,使用Imagemagick将psds转换为jpgs。 当我这样做时:
convert test.psd[0] -scale 300x300 test.jpg
此转换正常。但是,如果我有一个psds列表,如果我在循环中得到它们,如何实现相同的命令。
当我这样做时,我收到错误 - 转换:此图像格式没有解码委托
File.open("#{file_name}", "wb") do |f|
f.write(data) #create a psd file
jpg_file = file_name.gsub(".psd",".jpg")
psd_file = file_name.gsub(".psd",".psd[0]")
system('convert "#{psd_file}" -scale 302x302 "#{jpg_file}" ')
端 我错过了什么吗?我必须使用rmagick吗? 在此先感谢:)
答案 0 :(得分:1)
Ruby只插入双引号字符串。试试这个:
system("convert '#{psd_file}' -scale 302x302 '#{jpg_file}' ")
您可能还想将end
移到f.write
之后。
另请注意,"#{file_name}"
完全等同于file_name
。
答案 1 :(得分:0)
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} ")
所需颜色配置文件的路径由'#{Rails.root} /lib/folder_name/AdobeRGB1998.icc'指定;和'#{Rails.root} /lib/folder_name/sRGB_IEC61966-2-1_black_scaled.icc'