1
我發送imagick一個圖像,當它是一個動畫gif它將刪除動畫並留在一個單一的靜物。這是因爲調整大小代碼?或者它是圖像庫中固有的東西?下面是我的代碼,這裏有什麼問題?Imagick製作動畫GIF動畫?
if (isset($_FILES["image"])) {
$allowed_ext = array("jpg", "jpeg", "png", "gif");
$file_name = $_FILES["image"]["name"];
$file_ext = strtolower(end(explode(".", $file_name)));
$file_size = $_FILES["image"]["size"];
$file_tmp = $_FILES["image"]["tmp_name"];
// verify extension
if (in_array($file_ext, $allowed_ext) && $file_size < 2097152) {
// check if image needs scaling
$img = new imagick($file_tmp);
$img_size = $img->getImageGeometry();
$partyCommentErrors .= "<li>Width: ".$img_size["width"]." | Height: ".$img_size["height"]."</li>";
if ($img_size["width"] > 600 || $img_size["height"] > 600) {
// resize image
$img->resizeImage(600, 600, imagick::FILTER_LANCZOS, 0.9, true);
}
$img_size = $img->getImageGeometry();
$img->writeImage("imgs/commentpics/".$id.".".$file_ext);
// update database
$qry = "UPDATE comments SET thereisimg=1, imgtype='".$file_ext."', imgwidth='".$img_size["width"]."', imgheight='".$img_size["height"]."' WHERE id=$id";
mysqli_query($dblink, $qry);
} else {
$partyCommentErrors .= "<li>File type must be jpg, jpeg, png, or gif</li><li>File size must be less than 2 megabytes.</li>";
}
}
只是一個小問題丟回:爲什麼你認爲代碼必須建立在首位GIF動畫? – hakre
這不是創建一個圖像。它從表單獲取圖像並獲取其尺寸,然後根據需要調整尺寸並保存。對不起可能應該已經說清楚了。 – user2720360
那麼,爲什麼你認爲它必須保存爲一個動畫GIF呢? – hakre