關於這個 gd 庫 function 如何指定大小?

火爆浪子
  • 2.8k

我在網上看到這篇
http://yuncode.net/code/c_594...
用了之後成功,似乎不錯用,成效不錯
只是多了些疑問

問題1
這上面是超過 600x600就將寬高乘以0.9 ,直接將寬高打九折
想問問是否可以「指定寬度和高度」?假設我要 550x250呢?
補充:我發現調整成

$new_width = 550;
$new_height = 250;

並不會等比例壓縮,直接把我圖片壓扁了
原圖:

clipboard.png

指定寬高壓縮後:

clipboard.png

問題2

 //75代表的是质量、压缩图片容量大小
imagejpeg($image_wp, $imgdst,75);

這句我不太懂,所以數字 75代表什麼?越低越壓縮?文件size越小?

問題3
jpg 跟 jpeg 都是在 case 2: 處理嗎?

問題4
現在有更適合的函數可以升級這個 function 嗎?讓效率更好?諸如此類。純粹好奇,畢竟發文過了一年多

問題5
如果圖片低於我指定的寬高,能怎麼處理?網上是說反而會增加 size

回复
阅读 1.1k
3 个回答
✓ 已被采纳

原文中的

$new_width = ($width>600?600:$width)*0.9;
$new_height =($height>600?600:$height)*0.9;

是不是写反了。
如果 图片的宽高大于600,那就是600,如果小于600 就返回宽高。对返回值进行0.9

问题1:imagecopyresampled可以用这个函数把图片放大缩小到指定比例并不会压缩(但仅限于跟原图相等的比例)
问题2:70代表的是图片的质量值,越低压缩越厉害,但是这个只有jpeg的时候有
问题3:是的 因为这是同一类型的
问题4:这个就是基本上最精简的办法了,因为再升级的基础也是这些方法
问题5:如果低于你指定的宽高可以按照比例值进行放大

基本上没有刀耕火种自己处理过图片了,用云服务的api为主

https://help.aliyun.com/docum...

后台只需要存储一张原图,前台按需调取即可。比如:

https://res.donsee.cn/res/image/1808/3gsSxGOBLP.jpeg 原图

3gsSxGOBLP.jpeg

https://res.donsee.cn/res/image/1808/3gsSxGOBLP.jpeg!wideScreen

3gsSxGOBLP.jpeg!wideScreen

https://res.donsee.cn/res/image/1808/3gsSxGOBLP.jpeg!avatarsmall

3gsSxGOBLP.jpeg!avatarsmall

另外如果你希望研究php图片处理方面的话 建议可以看一看 imagemagick的文档

你知道吗?

宣传栏