アップロードされた画像のサイズを取得しています Imagick:
$im->getImageSize();
これは、イメージのサイズをバイト単位で返します。
ファイルサイズが特定のサイズを超えないように、圧縮レベルを自動的に設定したいと思います。最小許容圧縮レベル 60 (0 ~ 100 のスケール) で 70kb に制限したい場合は、次のようなことから始めます。
public function getCompLevel($size)
{
$maxsize = 70000; // Set rough max size of file
$mincomp = 60; // Set minimum compression level allowed
if($size > $maxsize ){ // If file size exceeds max allowed size, perform calculation
$comp = **EQUATION**
}
return ($comp < $mincomp) ? $mincomp : $comp; // if output is less than minimum allowed compression , return minimum. If not return calculated compression level
}
私が理解しようとしているのは、ファイルサイズに基づいて必要な圧縮レベルの近似値を計算するために必要な方程式です。色がファイルサイズに影響するため、これがそれほど正確ではない場合があることは理解していますが、できるだけ近づけたいと思います.
どんな助けでも大歓迎です。