| // Copyright 2018 The Chromium Authors |
| // 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_rep_ios.h" |
| |
| #include "base/check_op.h" |
| #include "ui/gfx/color_palette.h" |
| |
| namespace gfx { |
| |
| ImageSkiaRep::ImageSkiaRep() : scale_(0.0f) {} |
| |
| ImageSkiaRep::ImageSkiaRep(const gfx::Size& size, float scale) : scale_(scale) { |
| bitmap_.allocN32Pixels(static_cast<int>(size.width() * this->scale()), |
| static_cast<int>(size.height() * this->scale())); |
| bitmap_.eraseColor(kPlaceholderColor); |
| bitmap_.setImmutable(); |
| pixel_size_.SetSize(bitmap_.width(), bitmap_.height()); |
| } |
| |
| ImageSkiaRep::ImageSkiaRep(const SkBitmap& src, float scale) |
| : pixel_size_(gfx::Size(src.width(), src.height())), |
| bitmap_(src), |
| scale_(scale) { |
| CHECK_EQ(src.colorType(), kN32_SkColorType); |
| DCHECK(!bitmap_.drawsNothing()); |
| bitmap_.setImmutable(); |
| } |
| |
| ImageSkiaRep::ImageSkiaRep(const ImageSkiaRep& other) |
| : pixel_size_(other.pixel_size_), |
| bitmap_(other.bitmap_), |
| scale_(other.scale_) {} |
| |
| ImageSkiaRep::~ImageSkiaRep() {} |
| |
| int ImageSkiaRep::GetWidth() const { |
| return static_cast<int>(pixel_width() / scale()); |
| } |
| |
| int ImageSkiaRep::GetHeight() const { |
| return static_cast<int>(pixel_height() / scale()); |
| } |
| |
| const SkBitmap& ImageSkiaRep::GetBitmap() const { |
| return bitmap_; |
| } |
| |
| } // namespace gfx |