php png失真的原因及解决办法
吾爱主题
阅读:192
2021-11-25 16:03:00
评论:0
1、创建一个PHP示例文件。
2、创建一个和背景图片一样大小的真彩色画布。
3、复制背景图片。
4、通过“imagecreatefrompng”合成png图片即可。
实例
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?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解决合并图片失真问题
?1 2 3 4 5 6 7 | $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失真的解决方法内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.py.cn/php/jiaocheng/34479.html
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。