Heim > Backend-Entwicklung > PHP-Tutorial > ImageCopyResampled 扭结了狠久,求高手援助

ImageCopyResampled 扭结了狠久,求高手援助

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-13 11:05:17
Original
886 Leute haben es durchsucht

ImageCopyResampled 纠结了狠久,求高手援助。
测试代码:

 $createImg  = ImageCreateFromjpeg('x.jpg'); //图片大小为200*150<br /> $newimg     = imagecreatetruecolor(200,150);<br /> ImageCopyResampled($newimg,$createImg,0,0, $start_w=0, $start_h=0, $width=200,$height=150, $end_w=200,$end_h=150); <br /> imagejpeg($newimg);
Nach dem Login kopieren


几个参数值看过手册,大概理解了它们的作用。只是有些参数经测试,总觉得不是预期中的效果。

原图:


比如:
1.设置 $end_w=200,$end_h=150 也就是源文件的宽和高,我将其设置为 $end_w=400,$end_h=300;按我的理解是将图片放大,然后再缩成300*150 也就是和设置成$end_w=200,$end_h=150是一样的。

效果图:


设置后感到意外,高和宽变成了 100*75;我想是因为这函数是通过,设定原图的高宽值与生成新图的宽高的计算出比例。然后再通过原图实际的宽高各自除于这个比例生成的。


而我将$end_w=200,$end_h=150 设置一个小于原图的值则是另外一种情况。比如设为$end_w=100,$end_h=150
.函数会将截原图宽截取100,然后拉直到200.
效果图:


2.设置 $start_w=0, $start_h=12.5 本想 将图片压成100*75 截取高50 中间部分。设置
 $newimg     = imagecreatetruecolor(100,50);  <br />ImageCopyResampled($newimg,$createImg,0,0, $start_w=0, $start_h=24.5, $width=100,$height=75, $end_w=200,$end_h=150)<br />
Nach dem Login kopieren

生成图片是原图往上 24.5再压, 下方多余的24.5被画布大小局限挡住不可见;达到了预期的目标。不知这种实现方式是否正确。
效果图:

压了成为 100*75   在通过75/2  计算出两边截12.5 应该是一样的,不知可否实现。

刚接触这个函数不久,大家多提提意见;越啰嗦越好阿。先谢谢大家了!

------解决方案--------------------
你先将 将原图放大到 这个说法去掉
这个说法只会误导你

原图只有 200*150
那么 (201, 1) 必然在图的外边
图并没有变大,只是你在图外取值

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage