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 身份验证方面的函数
Oct 11 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
php多文件上传功能实现原理及代码
Apr 18 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
Jul 28 PHP
php取得字符串首字母的方法
Mar 25 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
Cygwin中安装PHP方法步骤
Jul 04 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
Apr 11 PHP
PHP简单验证码功能机制实例详解
Mar 27 PHP
PHP实现一个限制实例化次数的类示例
Sep 16 PHP
php实现微信和支付宝支付的示例代码
Aug 11 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下MAIL的另一解决方案
2006/10/09 PHP
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
PHP5.3新特性小结
2016/02/14 PHP
Yii rules常用规则示例
2016/03/15 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
php输出形式实例整理
2020/05/05 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
vue.js实现含搜索的多种复选框(附源码)
2017/03/23 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
python分布式环境下的限流器的示例
2017/10/26 Python
python tkinter组件使用详解
2019/09/16 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
Jupyter Notebook打开任意文件夹操作
2020/04/14 Python
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
服务员岗位职责
2014/01/29 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
防汛通知
2015/04/25 职场文书
聘任通知书
2015/09/21 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL