我在数据库中以RGB矩阵格式([W xH x 3]矩阵)有一些图像。(旁问:此格式是否有合适的名称?)
PHP中是否有任何工具可让我轻松地将其转换为可显示的格式(例如PNG)?我的目标是从数据库获取此(字节数组)图像,并使用base64编码将其嵌入HTML页面。
我知道ImageMagick可以做这种事情,但是我自己并不使用PHP。
似乎有一个“方法/功能”被调用,Imagick::importImagePixels
但是可能不推荐使用。详细信息在这里。
如果失败,则在命令行中,ImageMagick可以从这样的原始RGB文件中读取(假设其尺寸为500x300),并创建一个名为 image.png
convert -size 500x300 RGB:file.dat image.png
-depth 16
如果您的数据是16位的,则可能需要设置。-endian msb
如果原始数据是MSB优先的,则可能需要添加。
您可以从PHP打包到ImageMagick,并让它也创建base64编码的图像。因此,例如,如果要创建一个小的3像素的红色,绿色,蓝色条带,则可以执行以下操作:
convert xc:red xc:green xc:blue +append png:- | base64 -i - -o -
iVBORw0KGgoAAAANSUhEUgAAAAMAAAABAgMAAABmjvwnAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX/AAAAgAAAAP////+OcOPKAAAAAWJLR0QDEQxM8gAAAAd0SU1FB98EEQklANW7eQgAAAAKSURBVAjXY5AAAAAaABmHBux0AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTA0LTE3VDA5OjM3OjAwKzAxOjAw5tCGLgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0wNC0xN1QwOTozNzowMCswMTowMJeNPpIAAAAASUVORK5CYII=
因此,如果您可以在名为的文件中获取原始RGB数据data.bin
,则可以同样执行以下操作:
convert -size 300x200 RGB:data.bin png:- | base64 -i - -o -
另一种选择可能是使用像素迭代器,并在同一时间,这是早已在八达通的回答说明经过图像的一个像素在这里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句