【问题标题】:Possible to blend an image into a color? (Left, right, bottom)可以将图像混合成颜色吗? (左、右、下)
【发布时间】:2011-02-12 13:52:01
【问题描述】:

是否可以将图像的左侧、右侧和底部混合成一种颜色?
可以说,我希望将图像混合到颜色“#F0F0F0”中。我希望图像显示为背景的实际部分,所以我认为如果将其融入其中会看起来很酷。

【问题讨论】:

  • 我不明白你的意思。你能做一个示例截图吗?
  • 有什么特别的原因你不能只用 Photoshop/GIMP 做这个吗?
  • 我马上截图。 @dclowd9901,我希望图像是动态的。因此,当 url 更改时,会显示不同的图像,但颜色混合相同。对不起,如果我没有任何意义。
  • 好的,这是我的意思的屏幕截图。忽略图片前面的文字/等。我只是在谈论背景图像。 d-load.org/public/blendex.PNG 编辑:刚刚想到。我可以在另一个显示图像的 div 上方放置一个透明图像吗?

标签: php image colors blending


【解决方案1】:

您可以使用像ImageMagickGD 这样的图像处理库来完成此操作。我找到了this page,作者使用渐变来使用GD进行混合。

您也可以尝试使用Imagick::colorizeimage

更新

根据您的屏幕截图,我不明白为什么您不能只使用直接的 HTML+CSS 做您想做的事情。您可以或者使用透明 PNG 或者您可以在 CSS (Cross-browser Transparency via CSS) 中使用 -moz-opacityopacityfilter:alpha

【讨论】:

  • 透明的png 是唯一的方法。如果他给它一个background-color 然后使它部分不透明,它也会使内容不透明。致 OP:确保一开始就向我们提供尽可能多的信息。可能有办法剥掉你甚至没有想到的那只猫的皮。
  • @dclowd9901,抱歉信息不足。我将确保进一步解释我的下一个问题。 +1
【解决方案2】:

如果这只是针对网页,则可以使用基本的 HTML+CSS。正如您所说,您可以在背景上使用 PNG 作为中途停留(通过精心定位的<div>)。

否则,请查看ImageMagick Libraries for PHP,因为它们会让您以编程方式创建您所描述的混合图像。 (Imagick::colorizeImage)

【讨论】:

    【解决方案3】:

    我建议你使用verot's upload php 类。它包含所有当前可用的处理图像的服务器端操作函数(旋转、色调、框架颜色、背景颜色等)。

    查看此示例代码:

    $foo->image_resize          = true;
    $foo->image_ratio_fill      = 'R';
    $foo->image_y               = 150;
    $foo->image_x               = 100;
    $foo->image_background_color = '#FF00FF';
    $foo->image_rotate          = '90';
    

    【讨论】:

    • 没有什么可以包含所有可用的服务器端操作,因为您可以以任何可能的方式自己解码和操作图像数据,但不合逻辑、不合理或不寻常:) 您基本上可以为 php 重新编写一个 photoshop 过滤器(减去对 photoshops api 的原生 api 函数调用,但您也可以重写这些算法)
    • 好的,感谢您的更正。尽管如此,这个类还是提供了很多内置的图像处理工具。
    【解决方案4】:

    我不知道您到底需要什么,但是使用半透明 png 作为覆盖层您也可以做很多事情,而无需处理原始图像。

    【讨论】:

      【解决方案5】:

      您将不得不操纵图像的像素数据来实现这一点,但一旦您涵盖了它就不是真正的问题。获取像素的颜色值并将其与您的混合颜色混合。有一些非常标准的数学可以做得很好,例如这种算法value1 + (value2 - value1) * amount 在进行多纹理处理时经常在像素着色器中使用。

      正如其他人所说,用于 php 的图像库(例如 GD)有助于图像的数据操作,因为您不必自己对其进行解码和编码

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-25
        • 2020-09-25
        • 1970-01-01
        • 2017-07-14
        • 2010-11-23
        • 1970-01-01
        • 1970-01-01
        • 2021-08-31
        相关资源
        最近更新 更多