diff options
Diffstat (limited to 'chromium/ui/gfx/image/image_util.cc')
-rw-r--r-- | chromium/ui/gfx/image/image_util.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/chromium/ui/gfx/image/image_util.cc b/chromium/ui/gfx/image/image_util.cc index d21fb445716..0b6cacfca49 100644 --- a/chromium/ui/gfx/image/image_util.cc +++ b/chromium/ui/gfx/image/image_util.cc @@ -85,9 +85,15 @@ Image ResizedImageForSearchByImageSkiaRepresentation(const Image& image) { if (bitmap.height() * bitmap.width() > kSearchByImageMaxImageArea && (bitmap.width() > kSearchByImageMaxImageWidth || bitmap.height() > kSearchByImageMaxImageHeight)) { + double scale = std::min( + static_cast<double>(kSearchByImageMaxImageWidth) / bitmap.width(), + static_cast<double>(kSearchByImageMaxImageHeight) / bitmap.height()); + int width = base::ClampToRange<int>(scale * bitmap.width(), 1, + kSearchByImageMaxImageWidth); + int height = base::ClampToRange<int>(scale * bitmap.height(), 1, + kSearchByImageMaxImageHeight); SkBitmap new_bitmap = skia::ImageOperations::Resize( - bitmap, skia::ImageOperations::RESIZE_GOOD, kSearchByImageMaxImageWidth, - kSearchByImageMaxImageHeight); + bitmap, skia::ImageOperations::RESIZE_GOOD, width, height); return Image(ImageSkia(ImageSkiaRep(new_bitmap, 0.0f))); } |