1
Bob 2012-11-24 20:28:29 +08:00 1
我都成大牛了---作惊恐状
菜鸟中菜鸟回答不了你上面的问题 另外你的链接打不开 |
2
lhj2100 OP 我并不是想有谁能够给我直接的答案 只是不太理解关键几句代码的执行方式
想找个高手来帮忙指导一下 $canvas =imagecreatetruecolor($crop_width, $crop_height); $current_image =imagecreatefromjpeg($tmpfile); imagecopy($canvas, $current_image, 0, 0, $left, $top,$current_width, $current_height); imagejpeg($canvas,$tempcache,85); |
3
javaluo 2012-11-24 21:45:24 +08:00
|
4
chaojie 2012-11-24 21:52:31 +08:00
imagecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。
看到黑色了吧? $left+=3; $top+=3; 这当然只能是你的效果,因为它是3 imagejpeg($canvas,$tempcache,85) 貌似你在循环时把文件覆盖成新的小图了 |
6
chaojie 2012-11-24 22:04:05 +08:00
|
7
lhj2100 OP 我把我对代码的理解说一下 您看对不对
$canvas =imagecreatetruecolor($crop_width, $crop_height); //此时$canvas 是一个黑色的198×198的图片 $current_image =imagecreatefromjpeg($tmpfile); //此时$current_image 是我上传的那张图片 imagecopy($canvas, $current_image, 0, 0, $left, $top,$current_width, $current_height); //这里将我上传的那张图片 切割 从$left ,$top到$current_width ,$current_height 那一部分切割下来 安在 $canvas 的0,0 位置 imagejpeg($canvas,$tempcache,85); //这里将 $canvas 图片 以85%的质量 复制给$tempcache @chaojie 对吗 |
8
lhj2100 OP @chaojie
$current_image =imagecreatefromjpeg($tmpfile); $tmpfile 一直都在变化着的么? $tmpfile 在for 里就不是 $_FILES["viewFiles"]["tmp_name"]; 的值了么? |
9
chaojie 2012-11-24 22:22:33 +08:00 1
filepath only
$tmpfile=$_FILES["viewFiles"]["tmp_name"]; $tempcache=$_FILES["viewFiles"]["tmp_name"]; 变量虽不同,是同一个字符串 |
10
lhj2100 OP 试着将
$canvas =imagecreatetruecolor($crop_width, $crop_height); $current_image =imagecreatefromjpeg($tmpfile); 跟 imagedestroy($canvas); imagedestroy($current_image); 移动到循环之外就解决问题 了.. 但是还是不理解... |
11
lhj2100 OP @chaojie
赋值是从右往左的吧 $tmpfile=$_FILES["viewFiles"]["tmp_name"]; $tempcache=$_FILES["viewFiles"]["tmp_name"]; 不过好像我用的时候在最后 将$tempcache 这个字符变量 强制转换成了一个图像对象 就是这一句 imagejpeg($canvas,$tempcache,85); 这一句结束之后 $tempcache 是个什么类型的变量 如果不再是字符型 如何事先实现声明一个对象 装载 该句的运行结果.. |
12
lhj2100 OP |