php png失真的原因及解决办法


Posted in PHP onOctober 24, 2021

1、创建一个PHP示例文件。

2、创建一个和背景图片一样大小的真彩色画布。

3、复制背景图片。

4、通过“imagecreatefrompng”合成png图片即可。

实例

<?php
    ob_clean();
    $bg = "image1.png";
    $image_1 = imagecreatefrompng($bg);
    $bgx = imagesx($image_1);
    $bgy = imagesy($image_1);
    //创建一个和背景图片一样大小的真彩色画布(ps:只有这样才能保证后面copy图片的时候不会失真)
    $bgimage = imageCreatetruecolor($bgx,$bgy);
    imagesavealpha($bgimage, true);//保持透明
    imagealphablending($bgimage, true);//混色模式
    $alpha = imagecolorallocatealpha($bgimage, 0, 0, 0, 127);//透明
    imagefill($bgimage, 0, 0, $alpha);
    //copy背景图片
    imagecopyresampled($bgimage,$image_1,0,0,0,0,$bgx,$bgy,$bgx,$bgy);
    $fontColor = imagecolorallocate($bgimage,0x33,0x33,0x33);
    $image_2 = imagecreatefrompng( "image2.png");
    //合成图片2
    imagecopyresampled($bgimage, $image_2, 100, 100, 0, 0, 40, 40, imagesx($image_2) , imagesy($image_2));
    //文字
    $textLen = mb_strlen($text1);
    $fontSize  = 20;
    $fontWidth = imagefontwidth($fontSize)*3;//不知为什么,实测如此
    $textWidth = $fontWidth * mb_strlen($text1);
    $textx = ceil ( ($bgx - $textWidth) / 2 );
    imageTTFText($bgimage, $fontSize, 0, $textx, 450, $fontColor, $font , $text1);
    $result = imagepng($bgimage,"newimage.png");
    imagedestroy($bgimage);
    imagedestroy($qrcode);

更多相关解决方法

PHP解决合并图片失真问题

$ni = imagecreatetruecolor($toW,$toH); //创建真彩色图片
$bg_x = (($toW-$ftoW)/2);
$bg_y = (($toH-$ftoH)/2);
$color=imagecolorallocate($ni,255,255,255); //创建颜色
imagefill($ni, 0, 0, $color); //设置白底
imagecopy($ni,$tm,$bg_x,$bg_y,0,0,$ftoW,$ftoH); //合并图片
imagedestroy($tm);

到此这篇关于php png失真的原因及解决办法的文章就介绍到这了,更多相关php png失真的解决方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
PHP的分页功能
Mar 21 PHP
PHP添加MySQL数据记录代码
Jun 07 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
Aug 01 PHP
PHP实现把数字ID转字母ID
Aug 12 PHP
php检测网页是否被百度收录的函数代码
Oct 09 PHP
最常用的8款PHP调试工具
Jul 06 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
php递归删除指定文件夹的方法小结
Apr 20 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
php简单实现sql防注入的方法
Apr 22 PHP
php 实现一个字符串加密解密的函数实例代码
Nov 01 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 #PHP
PHP中多字节字符串操作实例详解
Aug 23 #PHP
PHP使用QR Code生成二维码实例
Jul 07 #PHP
PHP设计模式(观察者模式)
Jul 07 #PHP
eval(cmd)与eval($cmd)的区别与联系
用php如何解决大文件分片上传问题
Jul 07 #PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 04 #PHP
You might like
用PHP的ob_start();控制您的浏览器cache!
2007/02/14 PHP
PHP中文汉字验证码
2007/04/08 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python连接PostgreSQL数据库的方法
2016/11/28 Python
浅析Python中yield关键词的作用与用法
2016/11/29 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
个人简历中的自我评价怎么写
2014/01/26 职场文书
庆六一宣传标语
2014/10/08 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
工作推荐信模板
2015/03/25 职场文书
召开会议通知范文
2015/04/15 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android
python使用shell脚本创建kafka连接器
2022/04/29 Python