0

RMagickを使用して、rgba(0,0,0,0.3)からrgba(0,0,0,0.7)へのグラデーションのPNG画像を作成したいとします。これは可能ですか?

4

2 に答える 2

1

Gradient Built-in Formatと を使用して、RMagick 内から透明なグラデーション イメージを生成する方法があります Image.read()

require 'RMagick'

img = Magick::Image.read("gradient:rgba(0,0,0,0.3)-rgba(0,0,0,0.7)") do
    self.size = "100x100"
end
img.first.write("out.png")

これは、コマンド ラインで次を実行するのと同じです。

$ convert -size 100x100 'gradient:rgba(0,0,0,0.3)-rgba(0,0,0,0.7)' out.png
于 2014-09-22T01:55:34.703 に答える
1

それはできないと思います。ここの C コードを見ると、不透明度が自動的に OpaqueOpacity に設定されていることがわかります。さらに、塗りつぶしがどのように実装されているかを見ると、それらは画像を書き込むだけです。

一方、それはより低いレベルで行うことができます。不透明度が常に同じである場合は、ImageList を使用して平坦化できます。

于 2010-05-31T22:15:16.317 に答える