diff options
author | Florin Malita <fmalita@chromium.org> | 2018-11-06 11:08:07 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-11-06 17:24:58 +0000 |
commit | 5d3deb7301b1f41764b9959d44c7d6d6312d74a4 (patch) | |
tree | d040b6b0c6881f91bfc735d0bc474f1e1ea29f6c /modules | |
parent | fe24b83bf745363c4f6bd3c22e29be4ad890cbcb (diff) | |
download | skqp-5d3deb7301b1f41764b9959d44c7d6d6312d74a4.tar.gz |
[skottie] Preserve image aspect ratio
When the intrinsic image dimensions don't match the declared asset size,
use an aspect-preserving matrix for scaling.
Bug: skia:
TBR=
Change-Id: Ie361f464fdbc2c32cb898c9f97103521162b46a7
Reviewed-on: https://skia-review.googlesource.com/c/168274
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Auto-Submit: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'modules')
-rw-r--r-- | modules/skottie/src/SkottieLayer.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/modules/skottie/src/SkottieLayer.cpp b/modules/skottie/src/SkottieLayer.cpp index 98ea02cea0..2786ed5705 100644 --- a/modules/skottie/src/SkottieLayer.cpp +++ b/modules/skottie/src/SkottieLayer.cpp @@ -373,8 +373,9 @@ sk_sp<sksg::RenderNode> AnimationBuilder::attachImageAsset(const skjson::ObjectV } return sksg::Transform::Make(std::move(image_node), - SkMatrix::MakeScale(static_cast<float>(asset_size.width()) / image->width(), - static_cast<float>(asset_size.height()) / image->height())); + SkMatrix::MakeRectToRect(SkRect::Make(image->bounds()), + SkRect::Make(asset_size), + SkMatrix::kCenter_ScaleToFit)); } sk_sp<sksg::RenderNode> AnimationBuilder::attachImageLayer(const skjson::ObjectValue& jlayer, |