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 相关文章推荐
无限级别菜单的实现
Oct 09 PHP
PHP编码规范之注释和文件结构说明
Jul 09 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
Jan 06 PHP
xss防御之php利用httponly防xss攻击
Mar 21 PHP
PHP永久登录、记住我功能实现方法和安全做法
Apr 27 PHP
php分页查询的简单实现代码
Mar 14 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
yii2安装详细流程
May 23 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
Yii2.0实现的批量更新及批量插入功能示例
Jan 29 PHP
PHP文件打开关闭及读写操作示例解析
Aug 06 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
PHP 实现explort() 功能的详解
2013/06/20 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
javascript Select标记中options操作方法集合
2008/10/22 Javascript
jquery 实现的全选和反选
2009/04/15 Javascript
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
vue解决使用$http获取数据时报错的问题
2019/10/30 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
Python多线程模块Threading用法示例小结
2019/11/09 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
Python中Selenium库使用教程详解
2020/07/23 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
教你如何一步一步用Canvas写一个贪吃蛇
2018/10/22 HTML / CSS
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
ESDlife健康生活易:身体检查预订、搜寻及比较
2019/05/10 全球购物
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
车贷收入证明范本
2014/01/09 职场文书
先进个人事迹材料
2014/01/25 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
先进基层党组织材料
2014/12/25 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python