如何使用红宝石更改 PSD 的颜色

问题描述

我想获取一个 PSD 文件并将一种颜色替换为另一种颜色,我有一个部分使用 minimagick 工作,但是在我的输出文件中,所有图层都被展平为一个

我想更改所有图层的颜色并将图层保留在输出文件中。

有没有办法直接编辑文件来更改颜色,而不是将其转换为像素,更改这些颜色,然后写回新文件

这是我尝试的:

psd_image = MiniMagick::Image.open('PSD_IMAGE_URL')

changed_pixels = []

    psd_image.format "image/vnd.adobe.photoshop"
    psd_image.layers.each do |layer|
      pixels = layer.get_pixels

      pixels.each do |row|
        row.each do |pixel|
          if pixel == original_color # i.e [43,68,35]
            changed_pixels.append(new_color) # i.e. [255,247,27]
          else
            changed_pixels.append(pixel)
          end
        end
      end

    end

image = MiniMagick::Image.get_image_from_pixels(changed_pixels,[psd_image.width,psd_image.height],'rgb',8,'psd')
image.write('public/output.psd')

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)