M01 快點支援上傳 WebP 圖檔

cruiseton wrote:
Mobile01 圖片上傳完都沒有刪除功能了
上傳一百張也刪除不了任何一張
要他支援 webp?
==
不過也很難講, 基本上應該只要允許 webp 檔案型態可上傳就好了
==
可能還是不行, 可能還要調整大小, 太麻煩


+5 分.

M01 已 可以 上傳 WebP 圖檔,

up2u wrote:
webp不是ISO標準,是google強推的格式,連自家的Cloud Storage透過程式上傳webp都要手動改content type
降低1/3 ~ 1/2的大小又如何,網站的網路費用又不是你出的,真是皇帝不急,急死太監
而且下一代的圖片格式可能是ISO標準的avif,怎不要求01快點支援


M01 已 可以 上傳 WebP 圖檔.

cruiseton
IQuit 我看了呀. M01 可能只是 rename webp to jpg, 但這種方法不保證 100% 正確
IQuit
To cruiseton : 看 你 這樣回, 你 沒看吧.[笑到噴淚]
IQuit wrote:
看 你 這樣回, 你 沒看吧


cruiseton wrote:
(恕刪)


+5 分.

我 指的是 rename webp to jpg.
cruiseton
他應該直接保留 webp 格式, 現代瀏覽器已全面支援 webp 格式了
IQuit
To cruiseton : 因為 M01 懶的 搞, 這樣 WebP 檔案小 的 美意 就 沒了, 點 1F 連結 去 看.
目前我測試的結果是
webp 格式圖檔的確是上傳到 mobile01 伺服器
後續會轉檔成 jpeg 格式
使用者接收到的是 jpeg 格式
(這並非只是單純改變副檔名而已,他的確有轉檔)
cruiseton
他應該直接保留 webp 格式, 現代瀏覽器已全面支援 webp 格式了
IQuit
To cruiseton : 因為 M01 懶的 搞, 這樣 WebP 檔案小 的 美意 就 沒了, 點 1F 連結 去 看.
ren1244 wrote:
目前我測試的結果是
webp 格式圖檔的確是上傳到 mobile01 伺服器
後續會轉檔成 jpeg 格式
使用者接收到的是 jpeg 格式
(這並非只是單純改變副檔名而已,他的確有轉檔)


+5 分.

是 這樣 沒錯.

因為 M01 懶的 搞,
這樣 WebP 檔案小 的 美意 就 沒了,
點 1F 連結 去 看.
M01 的確應該是有轉換格式而不只是 rename

==

CHATGPT:

PHP 把 WebP 轉成 JPG 的幾種實務做法,從「最簡單」到「最穩定」,並附上常見陷阱 ✅

✅ 方法一:使用 GD(最常見、免額外套件)

條件

PHP ≥ 7.0

GD 有編譯 WebP 支援
(imagewebp()、imagecreatefromwebp() 必須存在)

範例程式碼
<!--?php
$webp = 'input.webp';
$jpg = 'output.jpg';

$image = imagecreatefromwebp($webp);
if (!$image) {
die('WebP not supported by GD');
}

// 白底(避免透明變黑)
$bg = imagecreatetruecolor(imagesx($image), imagesy($image));
$white = imagecolorallocate($bg, 255, 255, 255);
imagefill($bg, 0, 0, $white);
imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));

imagejpeg($bg, $jpg, 90); // 品質 0–100

imagedestroy($image);
imagedestroy($bg);

✅ 優點

不需外部程式

速度快

多數共享主機可用

⚠️ 注意

透明 WebP 會變黑 → 一定要補白底

有些主機的 GD 沒開 WebP 支援

✅ 方法二:使用 ImageMagick(最穩定、專業)
條件

主機已安裝 ImageMagick

PHP 已啟用 imagick 擴充

範例程式碼
<?php
$img = new Imagick('input.webp');

// 透明轉白底
$img--->setImageBackgroundColor('white');
$img = $img->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);

$img->setImageFormat('jpg');
$img->setImageCompressionQuality(90);
$img->writeImage('output.jpg');

$img->clear();
$img->destroy();

✅ 優點

對 WebP / 透明 / 色彩支援最好

不易出錯

可處理大圖

⚠️ 缺點

共享主機可能沒裝

==

省略其他比較不可能用的方法
cruiseton wrote:
M01 的確應該是有轉換格式而不只是 rename
==
CHATGPT:
PHP 把 WebP 轉成 JPG 的幾種實務做法,從「最簡單」到「最穩定」,並附上常見陷阱 ✅
✅ 方法一:使用 GD(最常見、免額外套件)
條件
PHP ≥ 7.0
GD 有編譯 WebP 支援
(imagewebp()、imagecreatefromwebp() 必須存在)
範例程式碼
<!--?php
$webp = 'input.webp';
$jpg = 'output.jpg';
$image = imagecreatefromwebp($webp);
if (!$image) {
die('WebP not supported by GD');
}
// 白底(避免透明變黑)
$bg = imagecreatetruecolor(imagesx($image), imagesy($image));
$white = imagecolorallocate($bg, 255, 255, 255);
imagefill($bg, 0, 0, $white);
imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
imagejpeg($bg, $jpg, 90); // 品質 0–100
imagedestroy($image);
imagedestroy($bg);
✅ 優點
不需外部程式
速度快
多數共享主機可用
⚠️ 注意
透明 WebP 會變黑 → 一定要補白底
有些主機的 GD 沒開 WebP 支援
✅ 方法二:使用 ImageMagick(最穩定、專業)
條件
主機已安裝 ImageMagick
PHP 已啟用 imagick 擴充
範例程式碼
<?php
$img = new Imagick('input.webp');
// 透明轉白底
$img--->setImageBackgroundColor('white');
$img = $img->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);
$img->setImageFormat('jpg');
$img->setImageCompressionQuality(90);
$img->writeImage('output.jpg');
$img->clear();
$img->destroy();
✅ 優點
對 WebP / 透明 / 色彩支援最好
不易出錯
可處理大圖
⚠️ 缺點
共享主機可能沒裝
==
省略其他比較不可能用的方法


+5 分.

WebP 沒 必要 去 轉,
而 M01 轉為 JPG 的 原因 1F 連結 有,
簡單 說 : 懶.

PS:
WebP 轉 JPG :
1. 變 糊.
2. 變 大.
3. 費 時.
那 這樣 M01 提供 上傳 WebP 檔案 就 已 失去 意義,
發揮 不出 WebP 檔案 的 優點.

cruiseton
PO 程式碼只是指出M01大概是怎麽做轉換的. 但實際上他不該做轉換的
IQuit
To cruiseton: 說的 沒毛病.
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!