| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2007 The Android Open Source Project | 2 * Copyright 2007 The Android Open Source Project |
| 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 | 8 |
| 9 #include "SkImageDecoder.h" | 9 #include "SkImageDecoder.h" |
| 10 #include "SkImageEncoder.h" | 10 #include "SkImageEncoder.h" |
| (...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 580 } else if (JCS_RGB_565 == cinfo.out_color_space) { | 580 } else if (JCS_RGB_565 == cinfo.out_color_space) { |
| 581 sc = SkScaledBitmapSampler::kRGB_565; | 581 sc = SkScaledBitmapSampler::kRGB_565; |
| 582 #endif | 582 #endif |
| 583 } else if (1 == cinfo.out_color_components && | 583 } else if (1 == cinfo.out_color_components && |
| 584 JCS_GRAYSCALE == cinfo.out_color_space) { | 584 JCS_GRAYSCALE == cinfo.out_color_space) { |
| 585 sc = SkScaledBitmapSampler::kGray; | 585 sc = SkScaledBitmapSampler::kGray; |
| 586 } else { | 586 } else { |
| 587 return return_false(cinfo, *bm, "jpeg colorspace"); | 587 return return_false(cinfo, *bm, "jpeg colorspace"); |
| 588 } | 588 } |
| 589 | 589 |
| 590 if (!sampler.begin(bm, sc, this->getDitherImage())) { | 590 if (!sampler.begin(bm, sc, *this)) { |
| 591 return return_false(cinfo, *bm, "sampler.begin"); | 591 return return_false(cinfo, *bm, "sampler.begin"); |
| 592 } | 592 } |
| 593 | 593 |
| 594 // The CMYK work-around relies on 4 components per pixel here | 594 // The CMYK work-around relies on 4 components per pixel here |
| 595 SkAutoMalloc srcStorage(cinfo.output_width * 4); | 595 SkAutoMalloc srcStorage(cinfo.output_width * 4); |
| 596 uint8_t* srcRow = (uint8_t*)srcStorage.get(); | 596 uint8_t* srcRow = (uint8_t*)srcStorage.get(); |
| 597 | 597 |
| 598 // Possibly skip initial rows [sampler.srcY0] | 598 // Possibly skip initial rows [sampler.srcY0] |
| 599 if (!skip_src_rows(&cinfo, srcRow, sampler.srcY0())) { | 599 if (!skip_src_rows(&cinfo, srcRow, sampler.srcY0())) { |
| 600 return return_false(cinfo, *bm, "skip rows"); | 600 return return_false(cinfo, *bm, "skip rows"); |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 819 } else if (JCS_RGB_565 == cinfo->out_color_space) { | 819 } else if (JCS_RGB_565 == cinfo->out_color_space) { |
| 820 sc = SkScaledBitmapSampler::kRGB_565; | 820 sc = SkScaledBitmapSampler::kRGB_565; |
| 821 #endif | 821 #endif |
| 822 } else if (1 == cinfo->out_color_components && | 822 } else if (1 == cinfo->out_color_components && |
| 823 JCS_GRAYSCALE == cinfo->out_color_space) { | 823 JCS_GRAYSCALE == cinfo->out_color_space) { |
| 824 sc = SkScaledBitmapSampler::kGray; | 824 sc = SkScaledBitmapSampler::kGray; |
| 825 } else { | 825 } else { |
| 826 return return_false(*cinfo, *bm, "jpeg colorspace"); | 826 return return_false(*cinfo, *bm, "jpeg colorspace"); |
| 827 } | 827 } |
| 828 | 828 |
| 829 if (!sampler.begin(&bitmap, sc, this->getDitherImage())) { | 829 if (!sampler.begin(&bitmap, sc, *this)) { |
| 830 return return_false(*cinfo, bitmap, "sampler.begin"); | 830 return return_false(*cinfo, bitmap, "sampler.begin"); |
| 831 } | 831 } |
| 832 | 832 |
| 833 // The CMYK work-around relies on 4 components per pixel here | 833 // The CMYK work-around relies on 4 components per pixel here |
| 834 SkAutoMalloc srcStorage(width * 4); | 834 SkAutoMalloc srcStorage(width * 4); |
| 835 uint8_t* srcRow = (uint8_t*)srcStorage.get(); | 835 uint8_t* srcRow = (uint8_t*)srcStorage.get(); |
| 836 | 836 |
| 837 // Possibly skip initial rows [sampler.srcY0] | 837 // Possibly skip initial rows [sampler.srcY0] |
| 838 if (!skip_src_rows_tile(cinfo, fImageIndex->huffmanIndex(), srcRow, sampler.
srcY0())) { | 838 if (!skip_src_rows_tile(cinfo, fImageIndex->huffmanIndex(), srcRow, sampler.
srcY0())) { |
| 839 return return_false(*cinfo, bitmap, "skip rows"); | 839 return return_false(*cinfo, bitmap, "skip rows"); |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1151 } | 1151 } |
| 1152 | 1152 |
| 1153 static SkImageEncoder* sk_libjpeg_efactory(SkImageEncoder::Type t) { | 1153 static SkImageEncoder* sk_libjpeg_efactory(SkImageEncoder::Type t) { |
| 1154 return (SkImageEncoder::kJPEG_Type == t) ? SkNEW(SkJPEGImageEncoder) : NULL; | 1154 return (SkImageEncoder::kJPEG_Type == t) ? SkNEW(SkJPEGImageEncoder) : NULL; |
| 1155 } | 1155 } |
| 1156 | 1156 |
| 1157 | 1157 |
| 1158 static SkImageDecoder_DecodeReg gDReg(sk_libjpeg_dfactory); | 1158 static SkImageDecoder_DecodeReg gDReg(sk_libjpeg_dfactory); |
| 1159 static SkImageDecoder_FormatReg gFormatReg(get_format_jpeg); | 1159 static SkImageDecoder_FormatReg gFormatReg(get_format_jpeg); |
| 1160 static SkImageEncoder_EncodeReg gEReg(sk_libjpeg_efactory); | 1160 static SkImageEncoder_EncodeReg gEReg(sk_libjpeg_efactory); |
| OLD | NEW |