第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有透明PNG的imagetruecolortopalette的PHP錯誤結(jié)果

帶有透明PNG的imagetruecolortopalette的PHP錯誤結(jié)果

PHP
撒科打諢 2022-01-14 17:28:01
我正在嘗試編寫一個 PHP 腳本來調(diào)整 PNG 圖像的大小,然后將其轉(zhuǎn)換為 PNG-8 位模式。所以生成的文件的大小會更小,但不會有太多的質(zhì)量損失。調(diào)整大小效果很好,還保留了圖像透明度:問題是當(dāng)我將圖像轉(zhuǎn)換為 8 位時:imagetruecolortopalette($resizedImg, true, 255);imagealphablending($resizedImg, false);$transparent = imagecolorallocatealpha($resizedImg, 255, 255, 255, 127);if(!imagefill($resizedImg, 0, 0, $transparent)) return false;imagesavealpha($resizedImg, true);生成的圖像是這樣的,周圍和圖像內(nèi)部都有一點透明度:如果我設(shè)置 256 種顏色而不是 255 種顏色:imagetruecolortopalette($resizedImg, true, 256);圖像將具有黑色背景:
查看完整描述

2 回答

?
慕斯王

TA貢獻1864條經(jīng)驗 獲得超2個贊

你可以在 ImageMagick 中輕松做到這一點,它分布在 Linux 上,可用于 Windows 和 Mac OSX。除了命令行之外,還有許多 API。以下是如何在 ImageMagick 命令行中執(zhí)行此操作。

輸入:

在此處輸入圖像描述

convert image.png PNG8:result1.png


在此處輸入圖像描述

PNG8:表示 256 色和二進制透明度。這意味著要么完全透明,要么不透明。這會導(dǎo)致邊緣周圍出現(xiàn)混疊(階梯狀)。如果您愿意設(shè)置背景顏色來代替透明度,那么您可以在結(jié)果中保持平滑(抗鋸齒)輪廓。所以對于白色背景。

convert image.png -background white -flatten PNG8:result2.png


在此處輸入圖像描述

ImageMagick 由 PHP Imagick 運行。所以你應(yīng)該可以用 PHP Imagick 做到這一點?;蛘吣梢詮?PHP exec() 調(diào)用 ImageMagick 命令行。


查看完整回答
反對 回復(fù) 2022-01-14
?
阿晨1998

TA貢獻2037條經(jīng)驗 獲得超6個贊

我不認(rèn)為這是奇怪的行為。

PHP 文檔沒有說明這一點,但我想這imagefill()與大多數(shù)其他應(yīng)用程序一樣:通過使用與填充開始的像素相同的顏色填充連接的像素(0, 0)。

因為您首先將托盤設(shè)置為 255 像素(或 256),所以您將所有黑暗區(qū)域轉(zhuǎn)換為黑色并失去所有透明度。然后,當(dāng)您從左上角開始填充填充時,所有連接的像素(也在企鵝和鴨子內(nèi)部)將變得透明。

我認(rèn)為沒有 ImageMagick 的唯一方法是遍歷調(diào)整大小圖像的所有像素并將像素顏色手動設(shè)置為有限的托盤。

前段時間我寫了一個小腳本來減少 PNG 的顏色,同時保留完整的 alpha 信息 (1)。這將減少 PNG 文件使用的托盤,從而減少文件大小。如果生成的 PNG 仍然超過 8 位,這并不重要。無論如何,一個小托盤會減小文件大小。

(1) https://bitbucket.org/thuijzer/pngreduce/

編輯:我剛剛使用您調(diào)整大小的 PNG(具有透明度)作為我的腳本的輸入,并僅使用 32 種顏色將其從 12 kB 轉(zhuǎn)換為 7 kB 文件:

Reduced to 62.28% of original, 12.1kB to 7.54kB

PNG減少到32色

編輯 2:我更新了我的腳本并添加了可選的 Floyd-Steinberg 抖動。每個通道有 16 種顏色的結(jié)果:

Reduced to 66.94% of original, 12.1kB to 8.1kB

在此處輸入圖像描述

請注意,抖動也會影響文件大小,因為當(dāng)相鄰像素具有不同顏色時,壓縮 PNG 會“更難”。


查看完整回答
反對 回復(fù) 2022-01-14
  • 2 回答
  • 0 關(guān)注
  • 213 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號