如何使用 RMagick 渲染透明渐变?

发布于 2024-09-04 01:30:03 字数 74 浏览 6 评论 0原文

想要使用 RMagick 创建从 rgba(0,0,0,0.3) 到 rgba(0,0,0,0.7) 的渐变 PNG 图像。这可能吗?

Want to use RMagick to create a PNG image of a gradient that goes from rgba(0,0,0,0.3) to rgba(0,0,0,0.7). Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜中书 2024-09-11 01:30:03

我想这是不可能的。如果您在此处查看c代码 您将看到不透明度自动设置为 OpaqueOpacity。此外,如果您查看填充的实现方式,您会发现它们只写入图像。

另一方面,它可以在较低的水平上完成。如果不透明度始终相同,则可以使用 ImageList,然后将其展平。

I guess it cannot be done. If you take a look at c code in here you will see that opacity is automatically set to OpaqueOpacity. Furthermore, if you take a look at how fills are implemented, they only write the image.

On the other hand, it could be done at a lower level. If the opacity is always the same, you can use an ImageList and then flatten it.

许仙没带伞 2024-09-11 01:30:03

有一种方法可以使用 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

There is a way to generate a transparent gradient image from within RMagick by using the
Gradient Built-in Format and
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")

This is the same as running the following in the command line:

$ convert -size 100x100 'gradient:rgba(0,0,0,0.3)-rgba(0,0,0,0.7)' out.png
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文