◯ CakePHP3 ImageMagickで写真(画像)圧縮するサンプルコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | // サンプルコード // 対象ファイル:JPEG,PNG,GIF // 圧縮品質:80 // 写真パス $photo_file_path = '写真パス'; // 写真拡張子取得 $file_extension = pathinfo($photo_file_path, PATHINFO_EXTENSION); // 写真読み込み $imagick_img = new \Imagick($photo_file_path); // 写真圧縮設定 if ($file_extension == 'jpeg' || $file_extension == 'jpg') { $imagick_img->setImageFormat('jpg'); $imagick_img->setImageCompression(\Imagick::COMPRESSION_JPEG); } elseif ($file_extension == 'png') { $imagick_img->setImageFormat('png'); $imagick_img->setImageCompression(\Imagick::COMPRESSION_UNDEFINED); } else { $imagick_img->setImageFormat('gif'); $imagick_img->setImageCompression(\Imagick::COMPRESSION_UNDEFINED); } $imagick_img->setImageCompressionQuality(80); // 写真上書き保存 if (!$imagick_img->writeImage($photo_file_path)) { // 上書き保存エラー } // Imagick clear $imagick_img->clear(); |