今天是:2025年4月7日 星期一
记住用户名密码
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | <?php index(); function index(){ $imageDefault = array ( 'left' =>435, 'top' =>1268, 'right' =>0, 'bottom' =>0, 'width' =>245, 'height' =>245, 'opacity' =>100 ); $textDefault = array ( 'text' => '' , 'left' =>0, 'top' =>0, 'fontSize' =>32, //字号 'fontColor' => '255,255,255' , //字体颜色 'angle' =>0, ); $background = 'bg.jpg' ; //海报最底层得背景 $config [ 'image' ][][ 'url' ] = 'ewm.jpg' ; ///二维码图片 $filename = 'qrcode_bg.jpg' ; //生成的文件 getbgqrcode( $imageDefault , $textDefault , $background , $filename , $config ); echo "<center><img src='" . $filename . "' width='400'/></center>" ; } function getbgqrcode( $imageDefault , $textDefault , $background , $filename = "" , $config = array ()){ //如果要看报什么错,可以先注释调这个header if ( empty ( $filename )) header( "content-type: image/png" ); //背景方法 $backgroundInfo = getimagesize ( $background ); $ext = image_type_to_extension( $backgroundInfo [2], false); $backgroundFun = 'imagecreatefrom' . $ext ; $background = $backgroundFun ( $background ); $backgroundWidth = imagesx( $background ); //背景宽度 $backgroundHeight = imagesy( $background ); //背景高度 $imageRes = imageCreatetruecolor( $backgroundWidth , $backgroundHeight ); $color = imagecolorallocate( $imageRes , 0, 0, 0); imagefill( $imageRes , 0, 0, $color ); imagecopyresampled( $imageRes , $background ,0,0,0,0,imagesx( $background ),imagesy( $background ),imagesx( $background ),imagesy( $background )); //处理了图片 if (! empty ( $config [ 'image' ])){ foreach ( $config [ 'image' ] as $key => $val ) { $val = array_merge ( $imageDefault , $val ); $info = getimagesize ( $val [ 'url' ]); $function = 'imagecreatefrom' .image_type_to_extension( $info [2], false); if ( $val [ 'stream' ]){ //如果传的是字符串图像流 $info = getimagesizefromstring( $val [ 'url' ]); $function = 'imagecreatefromstring' ; } $res = $function ( $val [ 'url' ]); $resWidth = $info [0]; $resHeight = $info [1]; //建立画板 ,缩放图片至指定尺寸 $canvas =imagecreatetruecolor( $val [ 'width' ], $val [ 'height' ]); imagefill( $canvas , 0, 0, $color ); //关键函数,参数(目标资源,源,目标资源的开始坐标x,y, 源资源的开始坐标x,y,目标资源的宽高w,h,源资源的宽高w,h) imagecopyresampled( $canvas , $res , 0, 0, 0, 0, $val [ 'width' ], $val [ 'height' ], $resWidth , $resHeight ); $val [ 'left' ] = $val [ 'left' ]<0? $backgroundWidth - abs ( $val [ 'left' ]) - $val [ 'width' ]: $val [ 'left' ]; $val [ 'top' ] = $val [ 'top' ]<0? $backgroundHeight - abs ( $val [ 'top' ]) - $val [ 'height' ]: $val [ 'top' ]; //放置图像 imagecopymerge( $imageRes , $canvas , $val [ 'left' ], $val [ 'top' ], $val [ 'right' ], $val [ 'bottom' ], $val [ 'width' ], $val [ 'height' ], $val [ 'opacity' ]); //左,上,右,下,宽度,高度,透明度 } } //处理文字 if (! empty ( $config [ 'text' ])){ foreach ( $config [ 'text' ] as $key => $val ) { $val = array_merge ( $textDefault , $val ); list( $R , $G , $B ) = explode ( ',' , $val [ 'fontColor' ]); $fontColor = imagecolorallocate( $imageRes , $R , $G , $B ); $val [ 'left' ] = $val [ 'left' ]<0? $backgroundWidth - abs ( $val [ 'left' ]): $val [ 'left' ]; $val [ 'top' ] = $val [ 'top' ]<0? $backgroundHeight - abs ( $val [ 'top' ]): $val [ 'top' ]; imagettftext( $imageRes , $val [ 'fontSize' ], $val [ 'angle' ], $val [ 'left' ], $val [ 'top' ], $fontColor , $val [ 'fontPath' ], $val [ 'text' ]); } } //生成图片 if (! empty ( $filename )){ $res = imagejpeg ( $imageRes , $filename ,90); //保存到本地 imagedestroy( $imageRes ); } else { imagejpeg ( $imageRes ); //在浏览器上显示 imagedestroy( $imageRes ); } } ?> |
目前有 0 条留言 其中:访客:0 条, 博主:0 条