我正在尝试创建一个用于创建半色调抖动的脚本。脚本应该采用rgb图像并将其转换为所有CMYK通道的四个png文件,每个通道都是具有相应阈值模式的位图,如下图所示:
到目前为止,我制作了一个脚本,用于将图像转换为cmyk,将其调整为所需大小并按通道分割。我还发现了使用ImageMagick创建这个很好的资源 - http://www.imagemagick.org/Usage/quantize/#halftone_offset。 它接近它正是我所需要的,但我不知道如何实现这个:
convert colorwheel.png -set option:distort:viewport '%wx%h+0+0' \
-colorspace CMYK -separate null: \
\( -size 2x2 xc: \( +clone -negate \) \
+append \( +clone -negate \) -append \) \
-virtual-pixel tile -filter gaussian \
\( +clone -distort SRT 60 \) +swap \
\( +clone -distort SRT 30 \) +swap \
\( +clone -distort SRT 45 \) +swap \
\( +clone -distort SRT 0 \) +swap +delete \
-compose Overlay -layers composite \
-set colorspace CMYK -combine -colorspace RGB \
offset_colorwheel.png
到目前为止我写的内容:
require 'rmagick'
include Magick
width = 1181
height = 826
puts "loading"
img = Image.read("123.jpg").first()#.resize_to_fit!(width, height)
puts "converting to cmyk"
img.colorspace = Magick::CMYKColorspace
puts "resizing"
img = img.resize_to_fill(width,height)
puts "channel separation"
a = img.separate(AllChannels)
channels = ["c", "m", "y", "k"]
a.each_with_index do |channel, index|
puts channels[index]
result.write("#{channels[index]}.jpg")
channel.ordered_dither('h4x4a').write("#{channels[index]}.jpg")
end
我很感激有关如何翻译给定ImageMagick命令的任何建议