limit resize if shrink would drop axis <1px
vips_resize() will break the aspect ratio and limit resize on an axis if it would result in an image of less than 1px on that axis see https://github.com/lovell/sharp/issues/1782#issuecomment-508921306
This commit is contained in:
parent
26100041e7
commit
f45f0ecef4
@ -13,6 +13,8 @@ magic number [przemyslawpluta]
|
|||||||
- fix vipsthumbnail with pyr tiff [kleisauke]
|
- fix vipsthumbnail with pyr tiff [kleisauke]
|
||||||
- text autofit could occasionally terminate early [levmorozov]
|
- text autofit could occasionally terminate early [levmorozov]
|
||||||
- fewer warnings on tiffload [chregu]
|
- fewer warnings on tiffload [chregu]
|
||||||
|
- vips_resize() breaks aspect ratio and limits shrink to prevent <1px
|
||||||
|
dimensions [lovell]
|
||||||
|
|
||||||
21/9/18 started 8.8.0
|
21/9/18 started 8.8.0
|
||||||
- much faster smartcrop [lovell]
|
- much faster smartcrop [lovell]
|
||||||
|
@ -31,6 +31,8 @@
|
|||||||
* 3/12/18 [edwjusti]
|
* 3/12/18 [edwjusti]
|
||||||
* - disable the centre sampling offset for nearest upscale, since the
|
* - disable the centre sampling offset for nearest upscale, since the
|
||||||
* affine nearest interpolator is always centre
|
* affine nearest interpolator is always centre
|
||||||
|
* 7/7/19 [lovell]
|
||||||
|
* - don't let either axis drop below 1px
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -213,6 +215,11 @@ vips_resize_build( VipsObject *object )
|
|||||||
hscale *= int_hshrink;
|
hscale *= int_hshrink;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Don't let either axis drop below 1 px.
|
||||||
|
*/
|
||||||
|
hscale = VIPS_MAX( hscale, 1.0 / in->Xsize );
|
||||||
|
vscale = VIPS_MAX( vscale, 1.0 / in->Ysize );
|
||||||
|
|
||||||
/* Any residual downsizing.
|
/* Any residual downsizing.
|
||||||
*/
|
*/
|
||||||
if( vscale < 1.0 ) {
|
if( vscale < 1.0 ) {
|
||||||
@ -424,6 +431,10 @@ vips_resize_init( VipsResize *resize )
|
|||||||
* @vscale, that factor is used for the vertical scale and @scale for the
|
* @vscale, that factor is used for the vertical scale and @scale for the
|
||||||
* horizontal.
|
* horizontal.
|
||||||
*
|
*
|
||||||
|
* If either axis would drop below 1px in size, the shrink in that dimension
|
||||||
|
* is limited. This breaks the image aspect ratio, but prevents errors due to
|
||||||
|
* fractional pixel sizes.
|
||||||
|
*
|
||||||
* This operation does not change xres or yres. The image resolution needs to
|
* This operation does not change xres or yres. The image resolution needs to
|
||||||
* be updated by the application.
|
* be updated by the application.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user