| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef SkImage_DEFINED | 8 #ifndef SkImage_DEFINED |
| 9 #define SkImage_DEFINED | 9 #define SkImage_DEFINED |
| 10 | 10 |
| 11 #include "SkFilterQuality.h" | 11 #include "SkFilterQuality.h" |
| 12 #include "SkImageInfo.h" | 12 #include "SkImageInfo.h" |
| 13 #include "SkImageEncoder.h" | 13 #include "SkImageEncoder.h" |
| 14 #include "SkRefCnt.h" | 14 #include "SkRefCnt.h" |
| 15 #include "SkScalar.h" | 15 #include "SkScalar.h" |
| 16 #include "SkShader.h" | 16 #include "SkShader.h" |
| 17 | 17 |
| 18 class SkData; | 18 class SkData; |
| 19 class SkCanvas; | 19 class SkCanvas; |
| 20 class SkColorTable; | 20 class SkColorTable; |
| 21 class SkImageGenerator; | 21 class SkImageGenerator; |
| 22 class SkPaint; | 22 class SkPaint; |
| 23 class SkPicture; | 23 class SkPicture; |
| 24 class SkPixelSerializer; |
| 24 class SkString; | 25 class SkString; |
| 25 class SkSurface; | 26 class SkSurface; |
| 26 class SkSurfaceProps; | 27 class SkSurfaceProps; |
| 27 class GrContext; | 28 class GrContext; |
| 28 class GrTexture; | 29 class GrTexture; |
| 29 | 30 |
| 30 /** | 31 /** |
| 31 * SkImage is an abstraction for drawing a rectagle of pixels, though the | 32 * SkImage is an abstraction for drawing a rectagle of pixels, though the |
| 32 * particular type of image could be actually storing its data on the GPU, or | 33 * particular type of image could be actually storing its data on the GPU, or |
| 33 * as drawing commands (picture or PDF or otherwise), ready to be played back | 34 * as drawing commands (picture or PDF or otherwise), ready to be played back |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 int srcX, int srcY) const; | 228 int srcX, int srcY) const; |
| 228 | 229 |
| 229 bool readPixels(const SkPixmap& dst, int srcX, int srcY) const; | 230 bool readPixels(const SkPixmap& dst, int srcX, int srcY) const; |
| 230 | 231 |
| 231 /** | 232 /** |
| 232 * Encode the image's pixels and return the result as a new SkData, which | 233 * Encode the image's pixels and return the result as a new SkData, which |
| 233 * the caller must manage (i.e. call unref() when they are done). | 234 * the caller must manage (i.e. call unref() when they are done). |
| 234 * | 235 * |
| 235 * If the image type cannot be encoded, or the requested encoder type is | 236 * If the image type cannot be encoded, or the requested encoder type is |
| 236 * not supported, this will return NULL. | 237 * not supported, this will return NULL. |
| 238 * |
| 239 * Note: this will attempt to encode the image's pixels in the specified fo
rmat, |
| 240 * even if the image returns a data from refEncoded(). That data will be ig
nored. |
| 237 */ | 241 */ |
| 238 SkData* encode(SkImageEncoder::Type, int quality) const; | 242 SkData* encode(SkImageEncoder::Type, int quality) const; |
| 239 | 243 |
| 240 SkData* encode() const { | 244 /** |
| 241 return this->encode(SkImageEncoder::kPNG_Type, 100); | 245 * Encode the image and return the result as a caller-managed SkData. This
will |
| 242 } | 246 * attempt to reuse existing encoded data (as returned by refEncoded). |
| 247 * |
| 248 * We defer to the SkPixelSerializer both for vetting existing encoded data |
| 249 * (useEncodedData) and for encoding the image (encodePixels) when no such
data is |
| 250 * present or is rejected by the serializer. |
| 251 * |
| 252 * If not specified, we use a default serializer which 1) always accepts ex
isting data |
| 253 * (in any format) and 2) encodes to PNG. |
| 254 * |
| 255 * If no compatible encoded data exists and encoding fails, this method wil
l also |
| 256 * fail (return NULL). |
| 257 */ |
| 258 SkData* encode(SkPixelSerializer* = nullptr) const; |
| 243 | 259 |
| 244 /** | 260 /** |
| 245 * If the image already has its contents in encoded form (e.g. PNG or JPEG)
, return a ref | 261 * If the image already has its contents in encoded form (e.g. PNG or JPEG)
, return a ref |
| 246 * to that data (which the caller must call unref() on). The caller is resp
onsible for calling | 262 * to that data (which the caller must call unref() on). The caller is resp
onsible for calling |
| 247 * unref on the data when they are done. | 263 * unref on the data when they are done. |
| 248 * | 264 * |
| 249 * If the image does not already has its contents in encoded form, return N
ULL. | 265 * If the image does not already has its contents in encoded form, return N
ULL. |
| 250 * | 266 * |
| 251 * Note: to force the image to return its contents as encoded data, try cal
ling encode(...). | 267 * Note: to force the image to return its contents as encoded data, try cal
ling encode(...). |
| 252 */ | 268 */ |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 | 329 |
| 314 private: | 330 private: |
| 315 const int fWidth; | 331 const int fWidth; |
| 316 const int fHeight; | 332 const int fHeight; |
| 317 const uint32_t fUniqueID; | 333 const uint32_t fUniqueID; |
| 318 | 334 |
| 319 typedef SkRefCnt INHERITED; | 335 typedef SkRefCnt INHERITED; |
| 320 }; | 336 }; |
| 321 | 337 |
| 322 #endif | 338 #endif |
| OLD | NEW |