diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/ui/gfx/image | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/ui/gfx/image')
-rw-r--r-- | chromium/ui/gfx/image/image_generic.cc | 1 | ||||
-rw-r--r-- | chromium/ui/gfx/image/image_util.cc | 10 | ||||
-rw-r--r-- | chromium/ui/gfx/image/image_util_unittest.cc | 17 |
3 files changed, 23 insertions, 5 deletions
diff --git a/chromium/ui/gfx/image/image_generic.cc b/chromium/ui/gfx/image/image_generic.cc index d7606e1d8cd..3115fecfb8d 100644 --- a/chromium/ui/gfx/image/image_generic.cc +++ b/chromium/ui/gfx/image/image_generic.cc @@ -8,6 +8,7 @@ #include <set> #include <utility> +#include "base/logging.h" #include "ui/gfx/codec/png_codec.h" #include "ui/gfx/image/image_skia_source.h" 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))); } diff --git a/chromium/ui/gfx/image/image_util_unittest.cc b/chromium/ui/gfx/image/image_util_unittest.cc index 40efde273aa..0ef65fdbb81 100644 --- a/chromium/ui/gfx/image/image_util_unittest.cc +++ b/chromium/ui/gfx/image/image_util_unittest.cc @@ -139,10 +139,21 @@ TEST(ImageUtilTest, ResizedImageForSearchByImage) { // Make sure the image large enough to let ResizedImageForSearchByImage to // resize the image. gfx::Image original_image = - gfx::test::CreateImage(gfx::kSearchByImageMaxImageHeight + 10, - gfx::kSearchByImageMaxImageWidth + 10); + gfx::test::CreateImage(gfx::kSearchByImageMaxImageWidth * 2, + gfx::kSearchByImageMaxImageHeight * 2); gfx::Image resized_image = gfx::ResizedImageForSearchByImage(original_image); - EXPECT_NE(original_image.Size(), resized_image.Size()); EXPECT_FALSE(resized_image.IsEmpty()); + EXPECT_EQ(resized_image.Width(), gfx::kSearchByImageMaxImageWidth); + EXPECT_EQ(resized_image.Height(), gfx::kSearchByImageMaxImageHeight); +} + +TEST(ImageUtilTest, ResizedImageForSearchByImageShouldKeepRatio) { + // Make sure the image large enough to let ResizedImageForSearchByImage to + // resize the image. + gfx::Image original_image = gfx::test::CreateImage(600, 600); + + gfx::Image resized_image = gfx::ResizedImageForSearchByImage(original_image); + EXPECT_EQ(resized_image.Width(), 400); + EXPECT_EQ(resized_image.Height(), 400); } |