在PHP 中使用動畫保留來調整動畫GIF 的大小
在保持動畫的同時調整動畫GIF 的大小可以使用ImageMagick 等外部工具或透過GD 函式庫函數的組合。
ImageMagick 方法:
如果您有權限存取ImageMagick,下列指令可以調整動畫GIF 的大小:
system("convert big.gif -coalesce coalesce.gif"); system("convert -size 200x100 coalesce.gif -resize 200x10 small.gif");
1.檢測圖像類型:
// Get image $sourceGif = imagecreatefromgif("big.gif"); // Determine if animated if (gdImageAnimationLen($sourceGif) > 1) { // Split into frames $frames = $frames = gdImageSplitAnimation($sourceGif); // Resize frames $resizedFrames = []; foreach ($frames as $frame) { $resizedFrames[] = gdImageScale($frame, $newWidth, $newHeight); } // Recomposite GIF $newGif = $newGif = gdImageCreateAnimatedGif() ; foreach ($resizedFrames as $frame) { gdImageAddGif($newGif, $frame); } // Output GIF imagegif($newGif, "small.gif"); }使用GD確定圖像是否為動畫GIF。 2.分割成幀:使用 GD 函式庫或第三方類別將 GIF 分成單獨的訊框。 3.調整框架大小:使用 GD 函式庫調整每個單獨框架的大小。 4.重新合成影格:使用 GD 或專用函式庫將調整大小的畫面重新組合成新的動畫 GIF。 範例程式碼:注意由於合併和去最佳化過程,此方法可能會產生更大的檔案大小。如果效能是一個問題,請考慮使用 ImageMagick。
以上是如何在 PHP 中調整動畫 GIF 的大小同時保留動畫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!