在PHP中从base64 png调整QRCode的大小

时间:2015-10-26 17:39:01

标签: php image

我从远程服务获得QRCode png as base64,需要在网上显示它。在没有“矢量”数据的情况下向上拍照时,它会模糊:

enter image description here

我用

将base64写入磁盘
fwrite($ifp, base64_decode($this->getQRCode()));

生成的png有点小(29x29像素)。当我用例如打开它时Photoshop,我可以毫不费力地炸掉它,所以看起来“矢量”数据是完整的。注意“像素”:

enter image description here

如何在将服务器端写入磁盘并从Web链接到服务器端之前在服务器端执行此操作。

2 个答案:

答案 0 :(得分:1)

你不能说你是如何拍摄照片的。"您是否尝试在PHP中重新调整图像?

$image = imagecreatefrompng($filename);
$bigimage = imagescale($image, 128, 128, IMG_NEAREST_NEIGHBOUR);
header("Content-Type: image/png");
//dumps directly to output
imagepng($bigimage, null, 0);

编辑:如果IMG_NEAREST_NEIGHBOUR不合适,您可以尝试各种插值模式as specified here。 (另请注意英国/加拿大人对邻居的拼写。)

答案 1 :(得分:0)

旧学校吹制图像的方式是(理想情况下)加倍像素。后来发明了平滑由该过程产生的粗糙边缘。所以现在我选择这个:

imagescale($image, 128, 128, IMG_NEAREST_NEIGHBOUR);