【发布时间】:2013-03-20 11:14:03
【问题描述】:
一个简单的问题,但我在 php 网站上找不到文档。
我正在使用 ImageMagick 并将像素导出为 CHAR
$pixels = $im->exportImagePixels(0, 0, $im->getImageGeometry()['width'], $im->getImageGeometry()['height'], "RGB", Imagick::PIXEL_CHAR);
我需要定义新像素并且我希望它们是 CHAR 类型。 当我在单个像素上使用 var_dump 时,PHP 将它们识别为整数。 现在我看到 php 没有 CHAR 数据类型,所以我想定义一个像这样的两字节无符号整数:
我将像素定义为 $pixel = 134;范围从 0 到 255
我想这样定义对应的字符:
0xFF & $pixel
它不起作用。
有人知道为什么吗?或者我能用它做什么? 我尝试使用 PIXEL_FLOAT 数据类型,但它真的很重,而且它会使我的脚本在更大的图片上崩溃。
谢谢大家。
【问题讨论】:
-
您得到的确切错误信息是什么?
-
如果你想控制数据类型,PHP可能是错误的方法。
-
不会给我一个错误,当我分配 $oldpixel = $newpixel 并且 $oldpixel 是一个 char 而 $newpixel 是一个 int 时,我得到的值是 -127 或 0,基本上图像会变成黑色的。我只是在使用 Imagick 类,我用其他语言做到了,但我需要在 php 中进行,因为它必须在 Web 服务器上运行
-
$im->exportImagePixels()返回什么?一个数组,我相信:imagemagick.org/RMagick/doc/image2.html#export_pixels? -
不知道它是否对你有帮助,但这是我一直在研究的一个 PHP 扩展,它可以让你进行一些非常复杂的图像处理:github.com/chung-leong/qb/wiki
标签: php types integer imagemagick int