summaryrefslogtreecommitdiff
path: root/chromium/ui/gfx/image
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/ui/gfx/image
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-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.cc1
-rw-r--r--chromium/ui/gfx/image/image_util.cc10
-rw-r--r--chromium/ui/gfx/image/image_util_unittest.cc17
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);
}