我试图找出一种更有效的方法,从php中的单个RGB颜色代码创建1px x 1xx图像(jpg,png和gif).
下面的例子说明了这样做的一种方法,但我希望某种算法能够获得相同的输出,而无需加载任何库或php扩展.
例:
function rgbToDataUri($r,$g,$b,$type)
{
$im = imageCreateTrueColor(1, 1);
imageFill($im, 0, 0, ImageColorAllocate($im,$r,$g,$b));
ob_start();
switch($type)
{
case 'gif':
imageGif($im);
break;
case 'jpg':
case 'jpeg':
imageJpeg($im);
break;
default:
imagePng($im);
}
$img = ob_get_contents();
ob_end_clean();
return 'data:image/' . $type . ';base64,' . base64_encode($img);
}
echo rgbToDataUri(0,0,0,'gif');
Run Code Online (Sandbox Code Playgroud)
输出:
data:image/gif;base64,R0lGODdhAQABAIAAAAQCBAAAACwAAAAAAQABAAACAkQBADs=
Run Code Online (Sandbox Code Playgroud)
我的目标是(优先顺序):
要求包括支持gif,jpg和png.每个请求都会创建20到50个这样的单像素图像(每个像素独立于其他像素).
如何为1px单色图像生成二进制文件?
我不是这个领域的专家。但我遇到了“ ImageMagick ”,它是一个用于创建和修改图像的本机 PHP 扩展。它可以读取、转换和写入多种格式(超过 100 种)的图像,包括 DPX、EXR、GIF、JPEG、JPEG-2000、PDF、PhotoCD、PNG、Postscript、SVG 和 TIFF。