| OLD | NEW |
| 1 // Copyright 2011 Google Inc. | 1 // Copyright 2011 Google Inc. |
| 2 // | 2 // |
| 3 // This code is licensed under the same terms as WebM: | 3 // This code is licensed under the same terms as WebM: |
| 4 // Software License Agreement: http://www.webmproject.org/license/software/ | 4 // Software License Agreement: http://www.webmproject.org/license/software/ |
| 5 // Additional IP Rights Grant: http://www.webmproject.org/license/additional/ | 5 // Additional IP Rights Grant: http://www.webmproject.org/license/additional/ |
| 6 // ----------------------------------------------------------------------------- | 6 // ----------------------------------------------------------------------------- |
| 7 // | 7 // |
| 8 // WebPPicture utils: colorspace conversion, crop, ... | 8 // WebPPicture utils: colorspace conversion, crop, ... |
| 9 // | 9 // |
| 10 // Author: Skal (pascal.massimino@gmail.com) | 10 // Author: Skal (pascal.massimino@gmail.com) |
| (...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 586 return Import(picture, rgba, rgba_stride, 4, 0, 1); | 586 return Import(picture, rgba, rgba_stride, 4, 0, 1); |
| 587 } | 587 } |
| 588 | 588 |
| 589 int WebPPictureImportBGRA(WebPPicture* const picture, | 589 int WebPPictureImportBGRA(WebPPicture* const picture, |
| 590 const uint8_t* const rgba, int rgba_stride) { | 590 const uint8_t* const rgba, int rgba_stride) { |
| 591 picture->colorspace |= WEBP_CSP_ALPHA_BIT; | 591 picture->colorspace |= WEBP_CSP_ALPHA_BIT; |
| 592 if (!WebPPictureAlloc(picture)) return 0; | 592 if (!WebPPictureAlloc(picture)) return 0; |
| 593 return Import(picture, rgba, rgba_stride, 4, 1, 1); | 593 return Import(picture, rgba, rgba_stride, 4, 1, 1); |
| 594 } | 594 } |
| 595 | 595 |
| 596 int WebPPictureImportRGBX(WebPPicture* const picture, |
| 597 const uint8_t* const rgba, int rgba_stride) { |
| 598 picture->colorspace &= ~WEBP_CSP_ALPHA_BIT; |
| 599 if (!WebPPictureAlloc(picture)) return 0; |
| 600 return Import(picture, rgba, rgba_stride, 4, 0, 0); |
| 601 } |
| 602 |
| 603 int WebPPictureImportBGRX(WebPPicture* const picture, |
| 604 const uint8_t* const rgba, int rgba_stride) { |
| 605 picture->colorspace &= ~WEBP_CSP_ALPHA_BIT; |
| 606 if (!WebPPictureAlloc(picture)) return 0; |
| 607 return Import(picture, rgba, rgba_stride, 4, 1, 0); |
| 608 } |
| 609 |
| 596 //------------------------------------------------------------------------------ | 610 //------------------------------------------------------------------------------ |
| 597 // Simplest call: | 611 // Simplest call: |
| 598 | 612 |
| 599 typedef int (*Importer)(WebPPicture* const, const uint8_t* const, int); | 613 typedef int (*Importer)(WebPPicture* const, const uint8_t* const, int); |
| 600 | 614 |
| 601 static size_t Encode(const uint8_t* rgba, int width, int height, int stride, | 615 static size_t Encode(const uint8_t* rgba, int width, int height, int stride, |
| 602 Importer import, float quality_factor, uint8_t** output) { | 616 Importer import, float quality_factor, uint8_t** output) { |
| 603 size_t output_size = 0; | 617 size_t output_size = 0; |
| 604 WebPPicture pic; | 618 WebPPicture pic; |
| 605 WebPConfig config; | 619 WebPConfig config; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 641 ENCODE_FUNC(WebPEncodeRGBA, WebPPictureImportRGBA); | 655 ENCODE_FUNC(WebPEncodeRGBA, WebPPictureImportRGBA); |
| 642 ENCODE_FUNC(WebPEncodeBGRA, WebPPictureImportBGRA); | 656 ENCODE_FUNC(WebPEncodeBGRA, WebPPictureImportBGRA); |
| 643 | 657 |
| 644 #undef ENCODE_FUNC | 658 #undef ENCODE_FUNC |
| 645 | 659 |
| 646 //------------------------------------------------------------------------------ | 660 //------------------------------------------------------------------------------ |
| 647 | 661 |
| 648 #if defined(__cplusplus) || defined(c_plusplus) | 662 #if defined(__cplusplus) || defined(c_plusplus) |
| 649 } // extern "C" | 663 } // extern "C" |
| 650 #endif | 664 #endif |
| OLD | NEW |