sk_image.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /*
  2. * Copyright 2014 Google Inc.
  3. *
  4. * Use of this source code is governed by a BSD-style license that can be
  5. * found in the LICENSE file.
  6. */
  7. // EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL
  8. // DO NOT USE -- FOR INTERNAL TESTING ONLY
  9. #ifndef sk_image_DEFINED
  10. #define sk_image_DEFINED
  11. #include "include/c/sk_types.h"
  12. SK_C_PLUS_PLUS_BEGIN_GUARD
  13. /**
  14. * Return a new image that has made a copy of the provided pixels, or NULL on failure.
  15. * Balance with a call to sk_image_unref().
  16. */
  17. SK_API sk_image_t* sk_image_new_raster_copy(const sk_imageinfo_t*, const void* pixels, size_t rowBytes);
  18. /**
  19. * If the specified data can be interpreted as a compressed image (e.g. PNG or JPEG) then this
  20. * returns an image. If the encoded data is not supported, returns NULL.
  21. *
  22. * On success, the encoded data may be processed immediately, or it may be ref()'d for later
  23. * use.
  24. */
  25. SK_API sk_image_t* sk_image_new_from_encoded(const sk_data_t* encoded, const sk_irect_t* subset);
  26. /**
  27. * Encode the image's pixels and return the result as a new PNG in a
  28. * sk_data_t, which the caller must manage: call sk_data_unref() when
  29. * they are done.
  30. *
  31. * If the image type cannot be encoded, this will return NULL.
  32. */
  33. SK_API sk_data_t* sk_image_encode(const sk_image_t*);
  34. /**
  35. * Increment the reference count on the given sk_image_t. Must be
  36. * balanced by a call to sk_image_unref().
  37. */
  38. SK_API void sk_image_ref(const sk_image_t*);
  39. /**
  40. * Decrement the reference count. If the reference count is 1 before
  41. * the decrement, then release both the memory holding the sk_image_t
  42. * and the memory it is managing. New sk_image_t are created with a
  43. reference count of 1.
  44. */
  45. SK_API void sk_image_unref(const sk_image_t*);
  46. /**
  47. * Return the width of the sk_image_t/
  48. */
  49. SK_API int sk_image_get_width(const sk_image_t*);
  50. /**
  51. * Return the height of the sk_image_t/
  52. */
  53. SK_API int sk_image_get_height(const sk_image_t*);
  54. /**
  55. * Returns a non-zero value unique among all images.
  56. */
  57. SK_API uint32_t sk_image_get_unique_id(const sk_image_t*);
  58. SK_C_PLUS_PLUS_END_GUARD
  59. #endif