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编程效率的方法
Nov 07 PHP
php cookie名使用点号(句号)会被转换
Oct 23 PHP
ThinkPHP实现二级循环读取的方法
Nov 03 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
利用“多说”制作留言板、评论系统
Jul 14 PHP
PHP内存使用情况如何获取
Oct 10 PHP
PHP模拟http请求的方法详解
Nov 09 PHP
解析 thinkphp 框架中的部分方法
May 07 PHP
php图像验证码生成代码
Jun 08 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
php写入文件不覆盖的实例讲解
Sep 17 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的ASP防火墙
2006/10/09 PHP
php skymvc 一款轻量、简单的php
2011/06/28 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
Jquery使用val方法读写value值
2015/05/18 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
python在windows下实现备份程序实例
2014/07/04 Python
Python中optparse模块使用浅析
2015/01/01 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
运动会稿件200字
2014/02/07 职场文书
专家推荐信模板
2014/05/09 职场文书
全国文明单位申报材料
2014/05/31 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
公司保洁员岗位职责
2015/02/13 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
Golang获取List列表元素的四种方式
2022/04/20 Golang