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 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
第五节--克隆
Nov 16 PHP
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
Oct 22 PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 PHP
php自定义函数call_user_func和call_user_func_array详解
Jul 14 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
php实现用已经过去多长时间的方式显示时间
Jun 05 PHP
php实现模拟post请求用法实例
Jul 11 PHP
PHP简单实现无限级分类的方法
May 13 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 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输出Excel文件类
2010/02/08 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
JS window.opener返回父页面的应用
2009/10/24 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
python实现桌面气泡提示功能
2019/07/29 Python
python在不同条件下的输入与输出
2020/02/13 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
科级干部考察材料
2014/02/15 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
地道战观后感
2015/06/04 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL
Nginx进程调度问题详解
2021/09/25 Servers
python中的random模块和相关函数详解
2022/04/22 Python
Echarts如何重新渲染实例详解
2022/05/30 Javascript