php - Imagick:: resizeImage vs Imagick:: scaleImage
(3)
Brillante, su propia documentación es horrible ... Pero está bien: me parece que resizeImage es más potente, y por lo tanto, la mejor opción ... Este enlace muestra el uso junto con algunas medidas para diferentes filtros.
¿Cuáles son las diferencias entre resizeImage
y scaleImage
?
Necesito cambiar el tamaño de una imagen si su tamaño es> $ myLimit
Ejemplo (pseudocódigo):
$myLimit = 1MB
user uplaod an image of 1000x1000 of 2MB
2MB > $myLimit
while( $imagefilesize > $myLimit ) {
resizeImageBy 0.9%;
}
//> output 900x900 image of 900 kB
En el bloque while
, ¿cuál de los dos métodos debo usar?
Edit: encontré algo que podría ayudar: http://www.imagemagick.org/Usage/resize/ Pero alguien podría simplificar eso?
De acuerdo con mi descubrimiento, cuando desee reducir una imagen, use resizeImage. Porque le da control sobre la calidad de la imagen y el tipo de filtro que desea utilizar. Pero en el mismo caso, scaleImage también es una buena opción porque cuando tiene que escalar una imagen, digamos por un factor de 10 y está usando resizeImage, la imagen resultante tendrá muchos errores gráficos.
En el segundo caso, cuando tengas que ampliar y una imagen, entonces resizeImage definitivamente tendrá un error gráfico, como marcas y líneas y otras cosas. En ese caso, scaleImage vendrá a rescatar.
La diferencia entre los dos parece ser que scaleImage
realiza un cambio de tamaño sin this basado en píxeles, mientras que this puede usar un filtro de interpolación :
imagick::INTERPOLATE_AVERAGE
imagick::INTERPOLATE_BICUBIC
imagick::INTERPOLATE_BILINEAR
...
Es probable que produzca mejores resultados.
Más sobre los diversos métodos de interpolación en Wikipedia .