Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1554)

Unified Diff: ui/gfx/image/image_skia_operations.cc

Issue 854713003: More old files deletion. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Fix tryjobs? Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/gfx/image/image_skia_operations.h ('k') | ui/gfx/image/image_skia_rep.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gfx/image/image_skia_operations.cc
diff --git a/ui/gfx/image/image_skia_operations.cc b/ui/gfx/image/image_skia_operations.cc
deleted file mode 100644
index a1fefce9ca6294a91555f08483ce371455dec0ff..0000000000000000000000000000000000000000
--- a/ui/gfx/image/image_skia_operations.cc
+++ /dev/null
@@ -1,548 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/gfx/image/image_skia_operations.h"
-
-#include "base/command_line.h"
-#include "base/logging.h"
-#include "skia/ext/image_operations.h"
-#include "ui/gfx/canvas.h"
-#include "ui/gfx/image/canvas_image_source.h"
-#include "ui/gfx/image/image_skia.h"
-#include "ui/gfx/image/image_skia_rep.h"
-#include "ui/gfx/image/image_skia_source.h"
-#include "ui/gfx/insets.h"
-#include "ui/gfx/point.h"
-#include "ui/gfx/point_conversions.h"
-#include "ui/gfx/rect.h"
-#include "ui/gfx/rect_conversions.h"
-#include "ui/gfx/size.h"
-#include "ui/gfx/size_conversions.h"
-#include "ui/gfx/skbitmap_operations.h"
-#include "ui/gfx/skia_util.h"
-
-namespace gfx {
-namespace {
-
-gfx::Size DIPToPixelSize(gfx::Size dip_size, float scale) {
- return ToCeiledSize(ScaleSize(dip_size, scale));
-}
-
-gfx::Rect DIPToPixelBounds(gfx::Rect dip_bounds, float scale) {
- return gfx::Rect(ToFlooredPoint(ScalePoint(dip_bounds.origin(), scale)),
- DIPToPixelSize(dip_bounds.size(), scale));
-}
-
-// Returns an image rep for the ImageSkiaSource to return to visually indicate
-// an error.
-ImageSkiaRep GetErrorImageRep(float scale, const gfx::Size& pixel_size) {
- SkBitmap bitmap;
- bitmap.allocN32Pixels(pixel_size.width(), pixel_size.height());
- bitmap.eraseColor(SK_ColorRED);
- return gfx::ImageSkiaRep(bitmap, scale);
-}
-
-// A base image source class that creates an image from two source images.
-// This class guarantees that two ImageSkiaReps have have the same pixel size.
-class BinaryImageSource : public gfx::ImageSkiaSource {
- protected:
- BinaryImageSource(const ImageSkia& first,
- const ImageSkia& second,
- const char* source_name)
- : first_(first),
- second_(second),
- source_name_(source_name) {
- }
- ~BinaryImageSource() override {}
-
- // gfx::ImageSkiaSource overrides:
- ImageSkiaRep GetImageForScale(float scale) override {
- ImageSkiaRep first_rep = first_.GetRepresentation(scale);
- ImageSkiaRep second_rep = second_.GetRepresentation(scale);
- if (first_rep.pixel_size() != second_rep.pixel_size()) {
- DCHECK_NE(first_rep.scale(), second_rep.scale());
- if (first_rep.scale() == second_rep.scale()) {
- LOG(ERROR) << "ImageSkiaRep size mismatch in " << source_name_;
- return GetErrorImageRep(first_rep.scale(),first_rep.pixel_size());
- }
- first_rep = first_.GetRepresentation(1.0f);
- second_rep = second_.GetRepresentation(1.0f);
- DCHECK_EQ(first_rep.pixel_width(), second_rep.pixel_width());
- DCHECK_EQ(first_rep.pixel_height(), second_rep.pixel_height());
- if (first_rep.pixel_size() != second_rep.pixel_size()) {
- LOG(ERROR) << "ImageSkiaRep size mismatch in " << source_name_;
- return GetErrorImageRep(first_rep.scale(), first_rep.pixel_size());
- }
- } else {
- DCHECK_EQ(first_rep.scale(), second_rep.scale());
- }
- return CreateImageSkiaRep(first_rep, second_rep);
- }
-
- // Creates a final image from two ImageSkiaReps. The pixel size of
- // the two images are guaranteed to be the same.
- virtual ImageSkiaRep CreateImageSkiaRep(
- const ImageSkiaRep& first_rep,
- const ImageSkiaRep& second_rep) const = 0;
-
- private:
- const ImageSkia first_;
- const ImageSkia second_;
- // The name of a class that implements the BinaryImageSource.
- // The subclass is responsible for managing the memory.
- const char* source_name_;
-
- DISALLOW_COPY_AND_ASSIGN(BinaryImageSource);
-};
-
-class BlendingImageSource : public BinaryImageSource {
- public:
- BlendingImageSource(const ImageSkia& first,
- const ImageSkia& second,
- double alpha)
- : BinaryImageSource(first, second, "BlendingImageSource"),
- alpha_(alpha) {
- }
-
- ~BlendingImageSource() override {}
-
- // BinaryImageSource overrides:
- ImageSkiaRep CreateImageSkiaRep(
- const ImageSkiaRep& first_rep,
- const ImageSkiaRep& second_rep) const override {
- SkBitmap blended = SkBitmapOperations::CreateBlendedBitmap(
- first_rep.sk_bitmap(), second_rep.sk_bitmap(), alpha_);
- return ImageSkiaRep(blended, first_rep.scale());
- }
-
- private:
- double alpha_;
-
- DISALLOW_COPY_AND_ASSIGN(BlendingImageSource);
-};
-
-class SuperimposedImageSource : public gfx::CanvasImageSource {
- public:
- SuperimposedImageSource(const ImageSkia& first,
- const ImageSkia& second)
- : gfx::CanvasImageSource(first.size(), false /* is opaque */),
- first_(first),
- second_(second) {
- }
-
- ~SuperimposedImageSource() override {}
-
- // gfx::CanvasImageSource override.
- void Draw(Canvas* canvas) override {
- canvas->DrawImageInt(first_, 0, 0);
- canvas->DrawImageInt(second_,
- (first_.width() - second_.width()) / 2,
- (first_.height() - second_.height()) / 2);
- }
-
- private:
- const ImageSkia first_;
- const ImageSkia second_;
-
- DISALLOW_COPY_AND_ASSIGN(SuperimposedImageSource);
-};
-
-class TransparentImageSource : public gfx::ImageSkiaSource {
- public:
- TransparentImageSource(const ImageSkia& image, double alpha)
- : image_(image),
- alpha_(alpha) {
- }
-
- ~TransparentImageSource() override {}
-
- private:
- // gfx::ImageSkiaSource overrides:
- ImageSkiaRep GetImageForScale(float scale) override {
- ImageSkiaRep image_rep = image_.GetRepresentation(scale);
- SkBitmap alpha;
- alpha.allocN32Pixels(image_rep.pixel_width(),
- image_rep.pixel_height());
- alpha.eraseColor(SkColorSetARGB(alpha_ * 255, 0, 0, 0));
- return ImageSkiaRep(
- SkBitmapOperations::CreateMaskedBitmap(image_rep.sk_bitmap(), alpha),
- image_rep.scale());
- }
-
- ImageSkia image_;
- double alpha_;
-
- DISALLOW_COPY_AND_ASSIGN(TransparentImageSource);
-};
-
-class MaskedImageSource : public BinaryImageSource {
- public:
- MaskedImageSource(const ImageSkia& rgb, const ImageSkia& alpha)
- : BinaryImageSource(rgb, alpha, "MaskedImageSource") {
- }
-
- ~MaskedImageSource() override {}
-
- // BinaryImageSource overrides:
- ImageSkiaRep CreateImageSkiaRep(
- const ImageSkiaRep& first_rep,
- const ImageSkiaRep& second_rep) const override {
- return ImageSkiaRep(SkBitmapOperations::CreateMaskedBitmap(
- first_rep.sk_bitmap(), second_rep.sk_bitmap()),
- first_rep.scale());
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MaskedImageSource);
-};
-
-class TiledImageSource : public gfx::ImageSkiaSource {
- public:
- TiledImageSource(const ImageSkia& source,
- int src_x, int src_y,
- int dst_w, int dst_h)
- : source_(source),
- src_x_(src_x),
- src_y_(src_y),
- dst_w_(dst_w),
- dst_h_(dst_h) {
- }
-
- ~TiledImageSource() override {}
-
- // gfx::ImageSkiaSource overrides:
- ImageSkiaRep GetImageForScale(float scale) override {
- ImageSkiaRep source_rep = source_.GetRepresentation(scale);
- gfx::Rect bounds = DIPToPixelBounds(gfx::Rect(src_x_, src_y_, dst_w_,
- dst_h_), source_rep.scale());
- return ImageSkiaRep(
- SkBitmapOperations::CreateTiledBitmap(
- source_rep.sk_bitmap(),
- bounds.x(), bounds.y(), bounds.width(), bounds.height()),
- source_rep.scale());
- }
-
- private:
- const ImageSkia source_;
- const int src_x_;
- const int src_y_;
- const int dst_w_;
- const int dst_h_;
-
- DISALLOW_COPY_AND_ASSIGN(TiledImageSource);
-};
-
-class HSLImageSource : public gfx::ImageSkiaSource {
- public:
- HSLImageSource(const ImageSkia& image,
- const color_utils::HSL& hsl_shift)
- : image_(image),
- hsl_shift_(hsl_shift) {
- }
-
- ~HSLImageSource() override {}
-
- // gfx::ImageSkiaSource overrides:
- ImageSkiaRep GetImageForScale(float scale) override {
- ImageSkiaRep image_rep = image_.GetRepresentation(scale);
- return gfx::ImageSkiaRep(
- SkBitmapOperations::CreateHSLShiftedBitmap(image_rep.sk_bitmap(),
- hsl_shift_), image_rep.scale());
- }
-
- private:
- const gfx::ImageSkia image_;
- const color_utils::HSL hsl_shift_;
- DISALLOW_COPY_AND_ASSIGN(HSLImageSource);
-};
-
-// ImageSkiaSource which uses SkBitmapOperations::CreateButtonBackground
-// to generate image reps for the target image. The image and mask can be
-// diferent sizes (crbug.com/171725).
-class ButtonImageSource: public gfx::ImageSkiaSource {
- public:
- ButtonImageSource(SkColor color,
- const ImageSkia& image,
- const ImageSkia& mask)
- : color_(color),
- image_(image),
- mask_(mask) {
- }
-
- ~ButtonImageSource() override {}
-
- // gfx::ImageSkiaSource overrides:
- ImageSkiaRep GetImageForScale(float scale) override {
- ImageSkiaRep image_rep = image_.GetRepresentation(scale);
- ImageSkiaRep mask_rep = mask_.GetRepresentation(scale);
- if (image_rep.scale() != mask_rep.scale()) {
- image_rep = image_.GetRepresentation(1.0f);
- mask_rep = mask_.GetRepresentation(1.0f);
- }
- return gfx::ImageSkiaRep(
- SkBitmapOperations::CreateButtonBackground(color_,
- image_rep.sk_bitmap(), mask_rep.sk_bitmap()),
- image_rep.scale());
- }
-
- private:
- const SkColor color_;
- const ImageSkia image_;
- const ImageSkia mask_;
-
- DISALLOW_COPY_AND_ASSIGN(ButtonImageSource);
-};
-
-// ImageSkiaSource which uses SkBitmap::extractSubset to generate image reps
-// for the target image.
-class ExtractSubsetImageSource: public gfx::ImageSkiaSource {
- public:
- ExtractSubsetImageSource(const gfx::ImageSkia& image,
- const gfx::Rect& subset_bounds)
- : image_(image),
- subset_bounds_(subset_bounds) {
- }
-
- ~ExtractSubsetImageSource() override {}
-
- // gfx::ImageSkiaSource overrides:
- ImageSkiaRep GetImageForScale(float scale) override {
- ImageSkiaRep image_rep = image_.GetRepresentation(scale);
- SkIRect subset_bounds_in_pixel = RectToSkIRect(
- DIPToPixelBounds(subset_bounds_, image_rep.scale()));
- SkBitmap dst;
- bool success = image_rep.sk_bitmap().extractSubset(&dst,
- subset_bounds_in_pixel);
- DCHECK(success);
- return gfx::ImageSkiaRep(dst, image_rep.scale());
- }
-
- private:
- const gfx::ImageSkia image_;
- const gfx::Rect subset_bounds_;
-
- DISALLOW_COPY_AND_ASSIGN(ExtractSubsetImageSource);
-};
-
-// ResizeSource resizes relevant image reps in |source| to |target_dip_size|
-// for requested scale factors.
-class ResizeSource : public ImageSkiaSource {
- public:
- ResizeSource(const ImageSkia& source,
- skia::ImageOperations::ResizeMethod method,
- const Size& target_dip_size)
- : source_(source),
- resize_method_(method),
- target_dip_size_(target_dip_size) {
- }
- ~ResizeSource() override {}
-
- // gfx::ImageSkiaSource overrides:
- ImageSkiaRep GetImageForScale(float scale) override {
- const ImageSkiaRep& image_rep = source_.GetRepresentation(scale);
- if (image_rep.GetWidth() == target_dip_size_.width() &&
- image_rep.GetHeight() == target_dip_size_.height())
- return image_rep;
-
- const Size target_pixel_size = DIPToPixelSize(target_dip_size_, scale);
- const SkBitmap resized = skia::ImageOperations::Resize(
- image_rep.sk_bitmap(),
- resize_method_,
- target_pixel_size.width(),
- target_pixel_size.height());
- return ImageSkiaRep(resized, scale);
- }
-
- private:
- const ImageSkia source_;
- skia::ImageOperations::ResizeMethod resize_method_;
- const Size target_dip_size_;
-
- DISALLOW_COPY_AND_ASSIGN(ResizeSource);
-};
-
-// DropShadowSource generates image reps with drop shadow for image reps in
-// |source| that represent requested scale factors.
-class DropShadowSource : public ImageSkiaSource {
- public:
- DropShadowSource(const ImageSkia& source,
- const ShadowValues& shadows_in_dip)
- : source_(source),
- shaodws_in_dip_(shadows_in_dip) {
- }
- ~DropShadowSource() override {}
-
- // gfx::ImageSkiaSource overrides:
- ImageSkiaRep GetImageForScale(float scale) override {
- const ImageSkiaRep& image_rep = source_.GetRepresentation(scale);
-
- ShadowValues shadows_in_pixel;
- for (size_t i = 0; i < shaodws_in_dip_.size(); ++i)
- shadows_in_pixel.push_back(shaodws_in_dip_[i].Scale(scale));
-
- const SkBitmap shadow_bitmap = SkBitmapOperations::CreateDropShadow(
- image_rep.sk_bitmap(),
- shadows_in_pixel);
- return ImageSkiaRep(shadow_bitmap, image_rep.scale());
- }
-
- private:
- const ImageSkia source_;
- const ShadowValues shaodws_in_dip_;
-
- DISALLOW_COPY_AND_ASSIGN(DropShadowSource);
-};
-
-// RotatedSource generates image reps that are rotations of those in
-// |source| that represent requested scale factors.
-class RotatedSource : public ImageSkiaSource {
- public:
- RotatedSource(const ImageSkia& source,
- SkBitmapOperations::RotationAmount rotation)
- : source_(source),
- rotation_(rotation) {
- }
- ~RotatedSource() override {}
-
- // gfx::ImageSkiaSource overrides:
- ImageSkiaRep GetImageForScale(float scale) override {
- const ImageSkiaRep& image_rep = source_.GetRepresentation(scale);
- const SkBitmap rotated_bitmap =
- SkBitmapOperations::Rotate(image_rep.sk_bitmap(), rotation_);
- return ImageSkiaRep(rotated_bitmap, image_rep.scale());
- }
-
- private:
- const ImageSkia source_;
- const SkBitmapOperations::RotationAmount rotation_;
-
- DISALLOW_COPY_AND_ASSIGN(RotatedSource);
-};
-
-
-} // namespace
-
-// static
-ImageSkia ImageSkiaOperations::CreateBlendedImage(const ImageSkia& first,
- const ImageSkia& second,
- double alpha) {
- if (first.isNull() || second.isNull())
- return ImageSkia();
-
- return ImageSkia(new BlendingImageSource(first, second, alpha), first.size());
-}
-
-// static
-ImageSkia ImageSkiaOperations::CreateSuperimposedImage(
- const ImageSkia& first,
- const ImageSkia& second) {
- if (first.isNull() || second.isNull())
- return ImageSkia();
-
- return ImageSkia(new SuperimposedImageSource(first, second), first.size());
-}
-
-// static
-ImageSkia ImageSkiaOperations::CreateTransparentImage(const ImageSkia& image,
- double alpha) {
- if (image.isNull())
- return ImageSkia();
-
- return ImageSkia(new TransparentImageSource(image, alpha), image.size());
-}
-
-// static
-ImageSkia ImageSkiaOperations::CreateMaskedImage(const ImageSkia& rgb,
- const ImageSkia& alpha) {
- if (rgb.isNull() || alpha.isNull())
- return ImageSkia();
-
- return ImageSkia(new MaskedImageSource(rgb, alpha), rgb.size());
-}
-
-// static
-ImageSkia ImageSkiaOperations::CreateTiledImage(const ImageSkia& source,
- int src_x, int src_y,
- int dst_w, int dst_h) {
- if (source.isNull())
- return ImageSkia();
-
- return ImageSkia(new TiledImageSource(source, src_x, src_y, dst_w, dst_h),
- gfx::Size(dst_w, dst_h));
-}
-
-// static
-ImageSkia ImageSkiaOperations::CreateHSLShiftedImage(
- const ImageSkia& image,
- const color_utils::HSL& hsl_shift) {
- if (image.isNull())
- return ImageSkia();
-
- return ImageSkia(new HSLImageSource(image, hsl_shift), image.size());
-}
-
-// static
-ImageSkia ImageSkiaOperations::CreateButtonBackground(SkColor color,
- const ImageSkia& image,
- const ImageSkia& mask) {
- if (image.isNull() || mask.isNull())
- return ImageSkia();
-
- return ImageSkia(new ButtonImageSource(color, image, mask), mask.size());
-}
-
-// static
-ImageSkia ImageSkiaOperations::ExtractSubset(const ImageSkia& image,
- const Rect& subset_bounds) {
- gfx::Rect clipped_bounds =
- gfx::IntersectRects(subset_bounds, gfx::Rect(image.size()));
- if (image.isNull() || clipped_bounds.IsEmpty()) {
- return ImageSkia();
- }
-
- return ImageSkia(new ExtractSubsetImageSource(image, clipped_bounds),
- clipped_bounds.size());
-}
-
-// static
-ImageSkia ImageSkiaOperations::CreateResizedImage(
- const ImageSkia& source,
- skia::ImageOperations::ResizeMethod method,
- const Size& target_dip_size) {
- if (source.isNull())
- return ImageSkia();
-
- return ImageSkia(new ResizeSource(source, method, target_dip_size),
- target_dip_size);
-}
-
-// static
-ImageSkia ImageSkiaOperations::CreateImageWithDropShadow(
- const ImageSkia& source,
- const ShadowValues& shadows) {
- if (source.isNull())
- return ImageSkia();
-
- const gfx::Insets shadow_padding = -gfx::ShadowValue::GetMargin(shadows);
- gfx::Size shadow_image_size = source.size();
- shadow_image_size.Enlarge(shadow_padding.width(),
- shadow_padding.height());
- return ImageSkia(new DropShadowSource(source, shadows), shadow_image_size);
-}
-
-// static
-ImageSkia ImageSkiaOperations::CreateRotatedImage(
- const ImageSkia& source,
- SkBitmapOperations::RotationAmount rotation) {
- if (source.isNull())
- return ImageSkia();
-
- return ImageSkia(new RotatedSource(source, rotation),
- SkBitmapOperations::ROTATION_180_CW == rotation ?
- source.size() :
- gfx::Size(source.height(), source.width()));
-
-}
-
-} // namespace gfx
« no previous file with comments | « ui/gfx/image/image_skia_operations.h ('k') | ui/gfx/image/image_skia_rep.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698