【问题标题】:How to use Imagick php to generate a bmp file with a palette offset如何使用 Imagick php 生成带有调色板偏移的 bmp 文件
【发布时间】:2023-03-24 10:32:01
【问题描述】:

我正在尝试通过 php 使用 Imagick 从 jpg 生成 8 位 bmp。但我希望像素颜色从索引 16 而不是 0 开始。下面的代码显示了如何以我需要的正确格式生成 bmp,但调色板索引默认为 0。有没有办法确保调色板开始在另一个索引?

$average = new Imagick("icon.jpg"); $average->setCompression(Imagick::COMPRESSION_NO); $average->quantizeImage(32, Imagick::COLORSPACE_RGB, 0, false, false); imagecolorset ($average, 0, 255, 255, 255); $average->setImageFormat("bmp"); header("内容类型:图片/bmp"); 回声$平均; $平均->清除(); $average->destroy();

【问题讨论】:

    标签: php offset bmp imagick palette


    【解决方案1】:

    我认为 Imagick 没有内置任何内容,因此您必须创建一个新调色板(从旧调色板复制颜色并带有偏移),然后使用 $pixel = $average::getImagePixelColor() 然后执行 $pixel->getColor() 和 @ 987654324@根据新调色板。

    【讨论】:

    • 我刚刚发现了一些我不知道的东西; ImagickPixelIterator 类。这可能有助于逐步浏览所有像素,找到这个关于它的博客valokuva.org/?p=79
    • 感谢您为我指出正确的方向。我希望会有一个更有效的过程。其意图是将生成的 bmp 转换为像素图,但更改像素图索引似乎不如 bmp 索引那么密集,所以我想我会采用这种方法。再次感谢您的帮助。
    猜你喜欢
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 2015-10-12
    • 1970-01-01
    • 2021-01-06
    • 2023-03-18
    相关资源
    最近更新 更多