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


Posted in PHP onNovember 17, 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和XSS跨站攻击的防范
Apr 17 PHP
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
PHP教程 预定义变量
Oct 23 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
Mar 23 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
Jun 05 PHP
PHP 快速排序算法详解
Nov 10 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
php实现按天数、星期、月份查询的搜索框
May 02 PHP
php 使用redis锁限制并发访问类示例
Nov 02 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
May 17 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 PHP
如何在Laravel之外使用illuminate组件详解
Sep 20 PHP
php实例化对象的实例方法
Nov 17 #PHP
php访问对象中的成员的实例方法
Nov 17 #PHP
php实现自动生成验证码的实例讲解
Nov 17 #PHP
php将xml转化对象的实例详解
Nov 17 #PHP
解决Laravel使用验证时跳转到首页的问题
Nov 17 #PHP
php png失真的原因及解决办法
Oct 24 #PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 #PHP
You might like
初探PHP5
2006/10/09 PHP
用PHP程序实现支持页面后退的两种方法
2008/06/30 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
smarty内置函数section的用法
2015/01/22 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
我的javascript 函数链之演变
2011/04/07 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
JavaScript实现的反序列化json字符串操作示例
2018/07/18 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
小程序转发探索示例
2019/02/19 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
js实现表单项的全选、反选及删除操作示例
2020/06/05 Javascript
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
python实现合并两个排序的链表
2019/03/03 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
2014年社区学雷锋活动总结
2014/03/09 职场文书
公司承诺书怎么写
2014/05/24 职场文书
质量月口号
2014/06/20 职场文书
教师党员自我评价2015
2015/03/04 职场文书
奖金申请报告模板
2015/05/15 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python