博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP图像操作:3D图、缩放、旋转、裁剪、添加水印(一)
阅读量:4286 次
发布时间:2019-05-27

本文共 2700 字,大约阅读时间需要 9 分钟。

来源:

1、利用php gd库的函数绘制3D扇形统计图

1: 
2: header("content-type","text/html;charset=utf-8");
3: /*扇形统计图*/
4: $image = imagecreatetruecolor(100, 100);    /*创建画布*/
5:
6: /*设置画布需要的颜色*/
7: $white = imagecolorallocate($image,0xff,0xff,0xff);
8: $gray = imagecolorallocate($image, 0xc0, 0xc0, 0xc0);
9: $darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
10: $navy = imagecolorallocate($image, 0x00, 0x00, 0x80);
11: $darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
12: $red = imagecolorallocate($image, 0xff, 0x00, 0x00);
13: $darkred = imagecolorallocate($image, 0x90, 0x00, 0x00);
14:
15: /*填充背景色*/
16: imagefill($image, 0, 0, $white);
17:
18: /*3D制作*/
19: for($i = 60; $i > 50; $i--)
20: {
21:     imagefilledarc($image, 50, $i, 100, 50, -160, 40, $darknavy, IMG_ARC_PIE);
22:     imagefilledarc($image, 50, $i, 100, 50, 40, 75, $darkgray, IMG_ARC_PIE);
23:     imagefilledarc($image, 50, $i, 100, 50, 75, 200, $darkred, IMG_ARC_PIE);
24: }
25: /*画椭圆弧并填充*/
26: imagefilledarc($image, 50, 50, 100, 50, -160, 40, $darknavy, IMG_ARC_PIE);
27: imagefilledarc($image, 50, 50, 100, 50, 40, 75, $darkgray, IMG_ARC_PIE);
28: imagefilledarc($image, 50, 50, 100, 50, 75, 200, $darkred, IMG_ARC_PIE);
29:
30: /*画字符串*/
31: imagestring($image, 3, 15, 55, "30%", $white);
32: imagestring($image, 3, 45, 35, "60%", $white);
33: imagestring($image, 3, 60, 60, "10%", $white);
34:
35: /*输出图像*/
36: header("content-type:image/png");
37: imagepng($image);
38:
39: /*释放资源*/
40: imagedestroy($image);
41: ?>

效果:

2、对图片进行缩放

1: 
2:     

原图大小

3:     
4: 
5: 
6: header("content-type","text/html;charset=utf-8");
7:
8: /*
9: *图片缩放
10: *@param string $filename   图片的url
11: *@param int    $width      设置图片缩放的最大宽度
12: *@param int    $height     设置图片缩放的最大高度
13: */
14: function thumb($filename,$width=130,$height=130)
15: {
16:     /*获取原图的大小*/
17:     list($width_orig,$height_orig) = getimagesize($filename);
18:
19:     /*根据参数$width和$height,换算出等比例的高度和宽度*/
20:     if($width && ($width_orig < $height_orig))
21:     {
22:         $width = ($height / $height_orig) * $width_orig;
23:     }
24:     else
25:     {
26:         $height = ($width / $width_orig) * $height_orig;
27:     }
28:
29:     /*以新的大小创建画布*/
30:     $image_p = imagecreatetruecolor($width, $height);
31:
32:     /*获取图像资源*/
33:     $image = imagecreatefrompng($filename);
34:
35:     /*使用imagecopyresampled缩放*/
36:     imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
37:
38:     /*保存缩放后的图片和命名*/
39:     imagepng($image_p,'test.png');
40:
41:     /*释放资源*/
42:     imagedestroy($image_p);
43:     imagedestroy($image);
44: }
45: /*调用函数*/
46: thumb('1.png');
47: ?>
48: 
49:     

缩放后的大小

50:     
51: 

效果:

你可能感兴趣的文章
swift中KVO的使用和注意事项、属性观察器
查看>>
swift之GCD的使用
查看>>
swift之UIAlertController
查看>>
swift之视频播放AVKIT、AVPlayerViewController、音频录制和播放
查看>>
android之res/menu
查看>>
android之通知Notification
查看>>
android 之常用功能发短信、接受短信
查看>>
android 之意图Intent的使用
查看>>
android之内容观察者ContentResolver
查看>>
android之延迟执行的几种方法
查看>>
android保存内容到xml中、解析xml
查看>>
android之对话框、单选,多选,进度条,日期选择对话框,时间选择对话框
查看>>
android 之从操作sqlite
查看>>
nodejs之express详解
查看>>
android之常见问题集合和注意事项
查看>>
adroid之加密算法md5
查看>>
android之drawable文件的设置selector、shape
查看>>
android之手势、touch事件流程、事件传递机制
查看>>
android之res/values、国际化
查看>>
android之一键锁屏、开启管理员权限、取消权限、卸载应用、开启应用
查看>>