summaryrefslogtreecommitdiff
path: root/Source/WebCore/platform/graphics/Image.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/platform/graphics/Image.cpp')
-rw-r--r--Source/WebCore/platform/graphics/Image.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/Image.cpp b/Source/WebCore/platform/graphics/Image.cpp
index bb7d3f73c..0ace7ac20 100644
--- a/Source/WebCore/platform/graphics/Image.cpp
+++ b/Source/WebCore/platform/graphics/Image.cpp
@@ -167,6 +167,23 @@ void Image::drawTiled(GraphicsContext* ctxt, const FloatRect& dstRect, const Flo
startAnimation();
}
+#if ENABLE(IMAGE_DECODER_DOWN_SAMPLING)
+FloatRect Image::adjustSourceRectForDownSampling(const FloatRect& srcRect, const IntSize& scaledSize) const
+{
+ const IntSize unscaledSize = size();
+ if (unscaledSize == scaledSize)
+ return srcRect;
+
+ // Image has been down-sampled.
+ float xscale = static_cast<float>(scaledSize.width()) / unscaledSize.width();
+ float yscale = static_cast<float>(scaledSize.height()) / unscaledSize.height();
+ FloatRect scaledSrcRect = srcRect;
+ scaledSrcRect.scale(xscale, yscale);
+
+ return scaledSrcRect;
+}
+#endif
+
void Image::computeIntrinsicDimensions(Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio)
{
intrinsicRatio = size();