php的gd库处理大的图片,PHP的gd库处理图片
gd庫為圖片加文字水印和圖片輸出
$number = $result['certno'];//設置水印內容
$file = './Uploads/certs/' . $number . '.jpg';
if(!is_file($file)){
$src = './template/public/img/zhengshu.jpg';//定義圖片地址
$info = getimagesize($src);//獲取圖片信息
$type = image_type_to_extension($info[2], false);//通過編號獲取圖片類型
$fun = "imagecreatefrom".$type;//在內存中創建一樣的圖像
$image = $fun($src);//圖片復制到內存
$font = './msyh.ttf';//設置字體路徑
$fontbd = './msyhbd.ttf';//設置字體路徑
$content = $result['authname'];//設置水印內容
$website = $result['auth_domains'];//設置水印內容
//求出水印內容在使用字體下在圖片的四個邊框的xy坐標
$version_fontarea1 = ImageTTFBBox(25,0,$fontbd,$version);
$content_fontarea1 = ImageTTFBBox(25,0,$font,$content);
$website_fontarea1 = ImageTTFBBox(12,0,$font,$website);
$width = $info[0];//獲取圖片寬度
//求出內容應該設置在圖片中的位置(y左邊我是自己一點點試的...x坐標是讓水印內容兩側距離相等)
$version_x = ($width - ($version_fontarea1[2] - $version_fontarea1[0])) / 2;
$content_x = ($width - ($content_fontarea1[2] - $content_fontarea1[0])) / 2;
$website_x = ($width - ($website_fontarea1[2] - $website_fontarea1[0])) / 2;
$color = imagecolorallocatealpha($image, 75, 75, 75, 0);//設置顏色
imagettftext($image, 11, 0, 105, 80, $color, $font, $number);
imagettftext($image, 25, 0, $version_x, 350, $color, $fontbd, $version);
imagettftext($image, 25, 0, $content_x, 520, $color, $font, $content);
imagettftext($image, 12, 0, $website_x, 560, $color, $font, $website);
//輸出圖片
$fun = "image".$type;
$fun($image, $file , 80);
imagedestroy($image);
}
$data = file_get_contents($file);
代碼中依然存在很大問題,因為這樣的做法,意味著有多少個result,就會在文件夾中生成多少張圖片。沒有找到gd庫直接從內存中獲取圖片內容的方法,迫不得已用這個方法
總結
以上是生活随笔為你收集整理的php的gd库处理大的图片,PHP的gd库处理图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李宁开倒车
- 下一篇: 一个不起眼儿的小部件:正加速燃油车的衰落