首頁 > 後端開發 > php教程 > ImageCopyResampled 扭结了狠久,求高手援助

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-13 11:05:17
原創
886 人瀏覽過

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);
登入後複製


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

原图:


比如:
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 />
登入後複製

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

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

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

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

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

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
javascript - js正規符合特定字串
來自於 1970-01-01 08:00:00
0
0
0
為什麼說非物件呼叫成員函數fetch()
來自於 1970-01-01 08:00:00
0
0
0
資料庫設定檔必須要用二維數組
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板