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一些错误处理的方法与技巧总结
Aug 10 PHP
新手菜鸟必读:session与cookie的区别
Aug 22 PHP
php删除数组元素示例分享
Feb 17 PHP
关于js和php对url编码的处理方法
Mar 04 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
PHP exif扩展方法开启详解
Jul 28 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
Mar 03 PHP
PHP实现的增强性mhash函数
May 27 PHP
php简单复制文件的方法
May 09 PHP
php版阿里云OSS图片上传类详解
Dec 01 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
May 06 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
php格式化时间戳
2016/12/17 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
csdn 批量接受好友邀请
2009/02/19 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
如何获取vue单文件自身源码路径
2019/05/06 Javascript
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
[03:26]《DAC最前线》之EG经理自述DOTA2经历
2015/02/02 DOTA
Python常用模块介绍
2014/11/21 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
Django中使用极验Geetest滑动验证码过程解析
2019/07/31 Python
jupyter实现重新加载模块
2020/04/16 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
开工典礼策划方案
2014/05/23 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书