imagecopyresampled 代替 imagecopyresized

解决方案 »

  1.   

    额,自己回答,因为我对函数理解的错误所以设置出错了。
    imagecopyresized($im1,$im2,10,10,0,0,imagesx($im2),imagesy($im2),imagesx($im1),imagesy($im1));
    这句改成
    imagecopyresized($im1,$im2,10,10,0,0,imagesx($im2),imagesy($im2),imagesx($im2),imagesy($im2));
    再对imagecopyresized()函数详细解释一下,个人觉得手册上说的不是很清楚。
    参数1是目标图片,它可以是一张新创建尚未保存的图片。只要用imagecreate得到的就可以了;
    参数2是你要改变的图片(或者在将本函数用做合成图片时,要叠加到参数1上去的图片);
    参数3,4是是参数2的图片到参数1左上角的距离;
    参数5,6没有测试还。。
    参数7,8,9,10用于计算导入后图片大小,其具体关系基于今天的试验感觉如下导入图像实际占据宽长为7,8的值,但是,有效图像的宽长分别为p7*p7/p9,p8*p8/p10,其余部分均补白
    呵呵,罗嗦了一堆,希望给他人有帮助。
    为了让帖子变成有效帖,希望有人能补充下5,6的功能,多谢了,补对的有分^_^。
      

  2.   

    的确是我又弄错了。我PS图片时把效果弄差了T_T!
    顺便补充5,6参数的作用,是参数2图片中距离左上角的坐标。例如5,6参数为10,15,而原始图像大小为30*30,那么将把原始图像从右下角起的20*15像素部分拷贝到参数1中指定位置,如果该大小小于实际分配的宽高。那么其余部分会被补白