您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
php实现图片缩放(png)实现二维码尺寸随二维码内容而变动
发布时间:2021-10-19 22:40:10编辑:雪饮阅读()
在二开crmeb时候遇到一个需求是要求接口返回一个海报,海报上面有贴一个二维码。
这个二维码扫码后要是一个网址,而网址还是不固定的,有长有短,目前就发现用crmeb中集成的一个qrcode处理类去处理时候虽然有设置size,但是网址长的时候二维码就大,网址短的时候二维码就小,根本固定不下来。那么后来发现php可以将图片缩放。而我这里正好生成二维码是png的,下面缩放时候用到的imagepng函数名中带有png,正好和我这个相仿,对于非png的,这里暂时不讨论(imagepng或许它只是名字带有png,也可以对jpg等处理,因为图片格式我了解的不多,模糊记得好像类似视频编码一样,你认为的mp4不一定就是单纯的mp4后缀那样,像是图片png可能也是一个大类,可能也包含jpg之类的)。那么完整的png图片缩放如:
function pngReSize($src,$dst,$newWidth,$newHeight){
//获取源图gd图像标识符
$srcImg = imagecreatefrompng($src);
$srcWidth = imagesx($srcImg);
$srcHeight = imagesy($srcImg);
//创建新图
$newImg = imagecreatetruecolor($newWidth, $newHeight);
//分配颜色 + alpha,将颜色填充到新图上
$alpha = imagecolorallocatealpha($newImg, 0, 0, 0, 127);
imagefill($newImg, 0, 0, $alpha);
//将源图拷贝到新图上,并设置在保存 PNG 图像时保存完整的 alpha 通道信息
imagecopyresampled($newImg, $srcImg, 0, 0, 0, 0, $newWidth, $newHeight, $srcWidth, $srcHeight);
imagesavealpha($newImg, true);
imagepng($newImg, $dst);
}
pngReSize("C:/phpstudy_pro/WWW/1.png","C:/phpstudy_pro/WWW/2.png",180,180);
然后我这里将那个crmeb中集成的那个处理二维码添加背景(这个crmeb集成的这个处理二维码的类还可以连贯操作添加二维码背景)时候我填的海报背景,那么我将添加背景的方法前置先执行了一个我自定义的方法,就是用上面的这个实例集成进去的,相当于我没有直接用它那个类而是继承那个类并新增了一个连贯方法做为处理二维码后缩放处理然后再执行最后的背景添加。
关键字词:php,图片缩放,二维码
上一篇:cmd命令行如何一次运行多个命令(非批处理)?php如何多开?
下一篇:phpunit如何生成代码覆盖率?“No filter is configured, code coverage will not be processed”问题
相关文章
- cmd命令行如何一次运行多个命令(非批处理)?php如何多开?
- phpunit-phpunit.xml-testsuites、testsuite
- phpunit-phpunit.xml-phpunit-testdox
- phpunit-phpunit.xml-phpunit-executionOrder
- phpunit-phpunit.xml-phpunit-stderr
- phpunit-phpunit.xml-phpunit-verbose
- phpunit-phpunit.xml-phpunit-defaultTestSuite
- phpunit-phpunit.xml-phpunit-testSuiteLoaderClass与
- phpunit-phpunit.xml-phpunit-timeoutForLargeTests
- phpunit-phpunit.xml-phpunit-timeoutForMediumTests