mirror of
https://github.com/webmproject/libwebp.git
synced 2024-11-20 04:18:26 +01:00
WebPRescalerGetScaledDimensions: round scaled dimension up
This is to prevent resizing to dimension 0 + added some safety checks about src_width > 0 and src_height > 0 BUG=webp:418 Change-Id: Ic04a53ad26455d80538bc8681882a554fca2a340
This commit is contained in:
parent
62eb3f087a
commit
d9a662e1aa
@ -84,14 +84,14 @@ int WebPRescalerGetScaledDimensions(int src_width, int src_height,
|
|||||||
int height = *scaled_height;
|
int height = *scaled_height;
|
||||||
|
|
||||||
// if width is unspecified, scale original proportionally to height ratio.
|
// if width is unspecified, scale original proportionally to height ratio.
|
||||||
if (width == 0) {
|
if (width == 0 && src_height > 0) {
|
||||||
width =
|
width =
|
||||||
(int)(((uint64_t)src_width * height + src_height / 2) / src_height);
|
(int)(((uint64_t)src_width * height + src_height - 1) / src_height);
|
||||||
}
|
}
|
||||||
// if height is unspecified, scale original proportionally to width ratio.
|
// if height is unspecified, scale original proportionally to width ratio.
|
||||||
if (height == 0) {
|
if (height == 0 && src_width > 0) {
|
||||||
height =
|
height =
|
||||||
(int)(((uint64_t)src_height * width + src_width / 2) / src_width);
|
(int)(((uint64_t)src_height * width + src_width - 1) / src_width);
|
||||||
}
|
}
|
||||||
// Check if the overall dimensions still make sense.
|
// Check if the overall dimensions still make sense.
|
||||||
if (width <= 0 || height <= 0) {
|
if (width <= 0 || height <= 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user