【问题标题】:Dynamically tint PNG image动态着色 PNG 图像
【发布时间】:2012-09-25 00:11:29
【问题描述】:

有谁知道给 PNG 图像上色并保持透明度的方法?例如,如果你在这里有这张图片:http://clipartist.org/RSS/openclipart.org/2012/March/June/11-Saturday/wheat_black_and_white_background_wall_paper_wallpaper-555px.png

有没有办法(最好使用 PHP 或 jQuery)动态地为图像的黑色部分添加颜色,同时保持透明像素?

【问题讨论】:

  • 像素只有部分透明的情况下需要怎么做?
  • 理想情况下,它们会相对于像素不透明度进行着色 - 但是,如果它们都是相同的色调,那就没问题了。我正在尝试为这样的分隔线着色xtiaan.splash.me/images/divider4.b.png
  • 所以你真正要找的是某种面具。
  • 当然可以,但是可以实现 - 但这些图像将位于动态彩色背景上,因此必须保留原始图像的透明度。
  • @Ohgodwhy,这可以通过 imagemagick 轻松完成。总统辩论一结束,我就会查一下。

标签: php jquery png tint


【解决方案1】:

使用 svg 文件代替这些简单的背景图像。可以在 php 中或在 javascript/jquery 中通过更改形状的 css 颜色来动态更改 svg 文件。这可以在 svg 本身或外部样式表中完成。

【讨论】:

    【解决方案2】:

    据我所知,PHP 的 GD 支持不支持颜色替换,除非您一次一个地遍历所有像素,比较值,并有条件地将其替换为新颜色。不过会很慢。

    查看imagemagick's replace function。您可以编写一个简单的 PHP 脚本,通过该命令将图像运行到标准输出,直接到浏览器。 (见PHP passthru function。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 2011-03-31
      • 1970-01-01
      • 2021-06-21
      • 2020-01-17
      相关资源
      最近更新 更多