aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkImageEncoder.h
Commit message (Collapse)AuthorAge
* centralize encoding to SkDataGravatar Mike Reed2017-12-09
| | | | | | | | Bug: skia: Change-Id: If3a9a6de54cf76d03e4d159b54b07a4ea6d5cda9 Reviewed-on: https://skia-review.googlesource.com/83020 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Add support for webp lossless compressionGravatar Matt Sarett2017-05-17
| | | | | | | | | Bug: 713862 Change-Id: I8dcc6506338f3c54fb14a78620e7daaadadfedde Reviewed-on: https://skia-review.googlesource.com/17073 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* hide lockpixels api behind flagGravatar Mike Reed2017-04-17
| | | | | | | | | | | | | | guarded by SK_SUPPORT_OBSOLETE_LOCKPIXELS needs https://codereview.chromium.org/2820873002/# to land first Bug: skia:6481 Change-Id: I1c39902cbf6fe99f622adfa8192733b95f7fea09 Change-Id: I1c39902cbf6fe99f622adfa8192733b95f7fea09 Reviewed-on: https://skia-review.googlesource.com/13580 Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Remove last of SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASSGravatar Hal Canary2017-01-10
| | | | | | | | | Approval from https://review.skia.org/5006 TBR=reed@google.com Change-Id: Icdd54be420260ecd2f94f2f1fa76caba34e6a50e Reviewed-on: https://skia-review.googlesource.com/6840 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Clean up unused SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS codeGravatar Hal Canary2017-01-10
| | | | | | | | | | Approval from https://review.skia.org/5006 TBR=reed@google.com Change-Id: Ie630a3f45a830c8c2dc80a30e759d9481b8d60a5 Reviewed-on: https://skia-review.googlesource.com/5775 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "SkImageEncoder::* going away"Gravatar Herb Derby2016-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Breaks 5 compiles on google3. This reverts commit 3489b2b727bfb725d45208049e82309280b79ad8. Reason for revert: <INSERT REASONING HERE> Original change's description: > SkImageEncoder::* going away > > Approval from https://review.skia.org/5006 > TBR=reed@google.com > > Change-Id: Ib5fb1b624594598e2316f9247069ecd207d7a974 > Reviewed-on: https://skia-review.googlesource.com/5751 > Reviewed-by: Hal Canary <halcanary@google.com> > Commit-Queue: Hal Canary <halcanary@google.com> > TBR=halcanary@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I0c0b863056c90435374769e85fb08c1b2f5113a2 Reviewed-on: https://skia-review.googlesource.com/5760 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Herb Derby <herb@google.com>
* SkImageEncoder::* going awayGravatar Hal Canary2016-12-09
| | | | | | | | | | Approval from https://review.skia.org/5006 TBR=reed@google.com Change-Id: Ib5fb1b624594598e2316f9247069ecd207d7a974 Reviewed-on: https://skia-review.googlesource.com/5751 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "SkImageEncoder::* going away"Gravatar Hal Canary2016-12-07
| | | | | | | | | | | This reverts commit d7e16661bb36924b2c8f717c527b876dabb595f3. Reason for revert: breaking g3 NOTRY=true Change-Id: I56d53adca64a94b4f66dd0539634804a96e92ddf Reviewed-on: https://skia-review.googlesource.com/5672 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Hal Canary <halcanary@google.com> Reviewed-by: Herb Derby <herb@google.com>
* SkImageEncoder::* going awayGravatar Hal Canary2016-12-07
| | | | | | | | | | Approval from https://review.skia.org/5006 TBR=reed@google.com Change-Id: I43d1a24fa3e924b3c24b224f2451ab990b440dc8 Reviewed-on: https://skia-review.googlesource.com/5413 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkEncodeImage: no more link-time registrationGravatar Hal Canary2016-11-30
| | | | | | | | | | | | | | | Also, no more SkImageEncoder class. SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS now only guards some old API shims. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5006 Change-Id: I3797f584f3e8e12ade10d31e8733163453725f40 Reviewed-on: https://skia-review.googlesource.com/5006 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Reed <reed@google.com>
* SkImageEncoder: simplify APIGravatar Hal Canary2016-11-23
| | | | | | | | | | | | | | | | | | | | | | | | (re-land 248ff02 & 2cb6cb7, with changes) - Hide SkImageEncoder class in private header. - SkImageEncoder::Type becomes SkEncodedImageFormat - SkEncodedFormat becomes SkEncodedImageFormat - SkImageEncoder static functions replaced with single function EncodeImage() - utility wrappers for EncodeImage() are in sk_tool_utils.h TODO: remove link-time registration mechanism. TODO: clean up clients use of API and flip the flag. TODO: implement EncodeImage() in chromeium/skia/ext Change-Id: I47d451e50be4d5c6c130869c7fa7c2857243d9f0 Reviewed-on: https://skia-review.googlesource.com/4909 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-on: https://skia-review.googlesource.com/5186 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Hal Canary <halcanary@google.com>
* Revert 248ff023 & 2cb6cb72Gravatar Hal Canary2016-11-22
| | | | | | | | | | | | | | Revert "SkImageEncoder: simplify API" This reverts commit 248ff02331d7f73ee4b6c5a7eabeae1080c16cd4. Revert "Fix bug: can't convert nullptr -> bool" This reverts commit 2cb6cb7218171b357bb5c934f032ba69c7b78401. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5151 NOTRY=true Change-Id: I5f6414392d6545f74db0b5bb50608d04f053a8ec Reviewed-on: https://skia-review.googlesource.com/5151 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Hal Canary <halcanary@google.com>
* Fix bug: can't convert nullptr -> boolGravatar Hal Canary2016-11-22
| | | | | | | Change-Id: Ib37c46d00b6a3e768e6d8399f2a6afb332d36bff Reviewed-on: https://skia-review.googlesource.com/5141 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* SkImageEncoder: simplify APIGravatar Hal Canary2016-11-22
| | | | | | | | | | | | | | | | | | | | | | - Hide SkImageEncoder class in private header. - SkImageEncoder::Type becomes SkEncodedImageFormat - SkEncodedFormat becomes SkEncodedImageFormat - SkImageEncoder static functions replaced with single function EncodeImage() - utility wrappers for EncodeImage() are in sk_tool_utils.h TODO: remove link-time registration mechanism. TODO: clean up clients use of API and flip the flag. TODO: implement EncodeImage() in chromeium/skia/ext GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4909 Change-Id: Ib48b31fdc05cf23cda7f56ebfd67c841c149ce70 Reviewed-on: https://skia-review.googlesource.com/4909 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* GN: guard tools (except fiddle) by skia_enable_tools.Gravatar mtklein2016-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our tools use third-party libraries pretty freely, some of which may not be available in other GN environments (e.g. Fuchsia). Most can also not function when Skia is built as a shared library. fiddle stands alone as the exception to both those points: it depends on only Skia, and works fine with both a shared or static library. So guard everything but fiddle with this flag skia_enable_tools, disabled when we're building for Fuchsia or when we're build a shared library. This CL has a couple of little tweaks to Fiddle to keep it working: - divorce it from :tool_utils, instead just building SkForceLinking.cpp itself; - fix up a buggy rebase_path() that was accidentally working when we depended on :tool_utils; - drop test_only: it now only requires production-code dependencies. The SkImageEncoder Create* methods need to be SK_API if we want SkForceLinking to work across .so's. Without this, SkForceLinking needs to be part of Skia; it can't be part of the application using Skia. The rest is mostly just a re-indent under if (skia_enable_tools), courtesy of gn format. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2273823003 No public API changes. TBR=reed@google.com Review-Url: https://codereview.chromium.org/2273823003
* Add test for platform encoders, turn off platform encoders by defaultGravatar msarett2016-08-16
| | | | | | | | | | | | | Clients that like WIC and CG can still use them. And we can be confident about that, since we now test WIC and CG. Let Skia always use our own encoders by default, so we can do cool, custom things on all platforms. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2250683003 Review-Url: https://codereview.chromium.org/2250683003
* Delete SkARGBImageEncoder.Gravatar mtklein2016-08-02
| | | | | | | | | | | | It appears to be unused now except by its unit test, also deleted. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2208433002 No public API changes. TBR=reed@google.com Review-Url: https://codereview.chromium.org/2208433002
* Delete SkImageDecoderGravatar msarett2016-03-24
| | | | | | | | | | | | | | | | | | | | | | This image decoding implementation has been replaced by SkCodec in Android. Additionally, we have replaced uses of SkImageDecoder in Skia and Google3 with uses of SkCodec. Now we can delete SkImageDecoder :). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1820503002 CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot Committed: https://skia.googlesource.com/skia/+/f799706656f2581c5bf5510d94df3fa17cce1607 Committed: https://skia.googlesource.com/skia/+/5b6e73e0c8282c4d85accbfbcecc6dee84f8a1eb Committed: https://skia.googlesource.com/skia/+/f037fdebda2a2626e6512d7532063f2cd41a264d Review URL: https://codereview.chromium.org/1820503002
* Revert of Delete SkImageDecoder (patchset #9 id:150001 of ↵Gravatar msarett2016-03-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1820503002/ ) Reason for revert: Roll still failing Original issue's description: > Delete SkImageDecoder > > This image decoding implementation has been replaced > by SkCodec in Android. > > Additionally, we have replaced uses of SkImageDecoder > in Skia and Google3 with uses of SkCodec. > > Now we can delete SkImageDecoder :). > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1820503002 > CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot > > Committed: https://skia.googlesource.com/skia/+/f799706656f2581c5bf5510d94df3fa17cce1607 > > Committed: https://skia.googlesource.com/skia/+/5b6e73e0c8282c4d85accbfbcecc6dee84f8a1eb > > Committed: https://skia.googlesource.com/skia/+/f037fdebda2a2626e6512d7532063f2cd41a264d TBR=scroggo@google.com,djsollen@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1830943002
* Delete SkImageDecoderGravatar msarett2016-03-23
| | | | | | | | | | | | | | | | | | | | This image decoding implementation has been replaced by SkCodec in Android. Additionally, we have replaced uses of SkImageDecoder in Skia and Google3 with uses of SkCodec. Now we can delete SkImageDecoder :). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1820503002 CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot Committed: https://skia.googlesource.com/skia/+/f799706656f2581c5bf5510d94df3fa17cce1607 Committed: https://skia.googlesource.com/skia/+/5b6e73e0c8282c4d85accbfbcecc6dee84f8a1eb Review URL: https://codereview.chromium.org/1820503002
* Revert of Delete SkImageDecoder (patchset #8 id:130001 of ↵Gravatar msarett2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1820503002/ ) Reason for revert: Testing the roll - it's still failing Original issue's description: > Delete SkImageDecoder > > This image decoding implementation has been replaced > by SkCodec in Android. > > Additionally, we have replaced uses of SkImageDecoder > in Skia and Google3 with uses of SkCodec. > > Now we can delete SkImageDecoder :). > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1820503002 > CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot > > Committed: https://skia.googlesource.com/skia/+/f799706656f2581c5bf5510d94df3fa17cce1607 > > Committed: https://skia.googlesource.com/skia/+/5b6e73e0c8282c4d85accbfbcecc6dee84f8a1eb TBR=scroggo@google.com,djsollen@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1828433004
* Delete SkImageDecoderGravatar msarett2016-03-23
| | | | | | | | | | | | | | | | | | This image decoding implementation has been replaced by SkCodec in Android. Additionally, we have replaced uses of SkImageDecoder in Skia and Google3 with uses of SkCodec. Now we can delete SkImageDecoder :). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1820503002 CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot Committed: https://skia.googlesource.com/skia/+/f799706656f2581c5bf5510d94df3fa17cce1607 Review URL: https://codereview.chromium.org/1820503002
* default SkPixelSerializerGravatar halcanary2015-12-10
| | | | | | | | | | | | | | | Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. Add SkImageEncoder::CreatePixelSerializer() to return a PixelSerializer that calls into SkImageEncoder::EncodeData. SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b Committed: https://skia.googlesource.com/skia/+/808ce2886d732b1055f89c8fb0f1b11b47fcb0ce Review URL: https://codereview.chromium.org/1507123002
* Revert of default SkPixelSerializer (patchset #2 id:20001 of ↵Gravatar halcanary2015-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1507123002/ ) Reason for revert: I was overconfident. Original issue's description: > default SkPixelSerializer > > Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. > > Add SkImageEncoder::CreatePixelSerializer() to return a > PixelSerializer that calls into SkImageEncoder::EncodeData. > > SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. > > Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b > > Committed: https://skia.googlesource.com/skia/+/808ce2886d732b1055f89c8fb0f1b11b47fcb0ce TBR=reed@google.com,scroggo@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1511183002
* default SkPixelSerializerGravatar halcanary2015-12-08
| | | | | | | | | | | | | Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. Add SkImageEncoder::CreatePixelSerializer() to return a PixelSerializer that calls into SkImageEncoder::EncodeData. SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b Review URL: https://codereview.chromium.org/1507123002
* Revert of default SkPixelSerializer (patchset #1 id:1 of ↵Gravatar reed2015-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1507123002/ ) Reason for revert: Breaking DEPS roll (linker error) Original issue's description: > default SkPixelSerializer > > Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. > > Add SkImageEncoder::CreatePixelSerializer() to return a > PixelSerializer that calls into SkImageEncoder::EncodeData. > > SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. > > Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b TBR=scroggo@google.com,halcanary@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1505203003
* default SkPixelSerializerGravatar halcanary2015-12-08
| | | | | | | | | | | Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function. Add SkImageEncoder::CreatePixelSerializer() to return a PixelSerializer that calls into SkImageEncoder::EncodeData. SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer. Review URL: https://codereview.chromium.org/1507123002
* Revert of change pixel-serializer to support reencoding existing data ↵Gravatar reed2015-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #5 id:80001 of https://codereview.chromium.org/1373683003/ ) Reason for revert: Need to somehow get access to encoders in chrome -- link error on the roll since SkImageEncoder is not built as part of chrome. Original issue's description: > change pixel-serializer to support reencoding existing data > > Trying to evolve this interface so it can > - support rich set of backend-encoders (including ones like ETC1 that can cheaply convert to KXT > - allow for encoding images as well as bitmaps (e.g. for picture serialization) > - perhaps replace SkImageEncoder as an API (assuming we create a factory that returns a serializer given a format) > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/13f48dc85aa68a60da66aaf39c93d527d11d1278 TBR=scroggo@google.com,msarett@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1371983003
* change pixel-serializer to support reencoding existing dataGravatar reed2015-09-28
| | | | | | | | | | | Trying to evolve this interface so it can - support rich set of backend-encoders (including ones like ETC1 that can cheaply convert to KXT - allow for encoding images as well as bitmaps (e.g. for picture serialization) - perhaps replace SkImageEncoder as an API (assuming we create a factory that returns a serializer given a format) BUG=skia: Review URL: https://codereview.chromium.org/1373683003
* Style Change: SkNEW->new; SkDELETE->deleteGravatar halcanary2015-08-26
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316123003 Review URL: https://codereview.chromium.org/1316123003
* Add SkEncodedFormat, used by SkCodec.Gravatar scroggo2015-03-20
| | | | | | Needed by Android to determine the format. Review URL: https://codereview.chromium.org/1018953003
* add const to encodePixels pixel parameterGravatar reed2014-12-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/788143007
* ios fixesGravatar caryclark2014-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | skia_ios.mm Get the app's Documents directory and pass use it to set the resource path. This is a quick hack which will be replaced by a new application that is a tiny shim around a command line tool. SkImageEncoder.h SkForceLinking.cpp SkImageDecoder_CG.cpp Add support for FORCE_LINKING so iOS sees the PNG encoder and others. SkFloatBits.cpp SkPoint.cpp Handle denormalized numbers that are floored by the iOS ARM processor. SkImageDecoder_iOS.mm Remove empty encoder factory. SkTouchGesture.cpp Return early on empty state on touch rather than aborting (crashing) JpegTest.cpp Hal via stackoverflow.com says partial jpegs can be gray as well. skia_test.cpp Remove crash handler call for now to avoid link failure. OverwriteLine.h Remove fancy line overwrite for iOS. Resources.cpp Add interface to set resource directory based on runtime query. BUG=skia:2736 skia:2737 skia:2738 R=reed@google.com, halcanary@google.com, mtklein@google.com, tfarina@chromium.org Author: caryclark@google.com Review URL: https://codereview.chromium.org/373383003
* Initial KTX encoderGravatar krajcevski2014-06-06
| | | | | | | | | | | The encoder comes with tests to check that the encoding/decoding operations between ETC encoded bitmaps and ARGB bitmaps are sane. R=bsalomon@google.com, robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/312353003
* Rewrite SkTRegistry to take any trivially-copyable type.Gravatar mtklein@google.com2013-09-04
| | | | | | | | | | | | | | Obviously these are all currently function pointers of type T(*)(P) for various T and P. In bench refactoring, I'm trying to register a function pointer of type T(*)(), which can't be done as is (passing P=void doesn't work). This also lets us register things like primitives, which is conceivable useful. BUG= R=reed@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/23453031 git-svn-id: http://skia.googlecode.com/svn/trunk@11082 2bbb7eff-a529-9590-31e7-b0007b416f81
* Separate core and images project.Gravatar scroggo@google.com2013-05-31
SkImage calls functions on SkImageDecoder and SkImageEncoder. This is desired behavior, and it is also desired to include SkImage as a part of core. In order to keep core from depending on images, update SkImageDecoder_empty.cpp to implement all of SkImageDecoder and SkImageEncoder. This file will be built by chrome (in https://codereview.chromium.org/15960015). Move force_linking from SkImageDecoder.cpp to its own file. It must be called to force linking with the image decoders if desired. Call the function in tools that need it: sk_image render_pictures render_pdfs sk_hello filter bench_pictures debugger SkImageDecoder: Derive from SkNoncopyable, instead of duplicating its hiding of constructors. skhello: Return rather than trying to write a null SkData to the stream. Revert "Hamfistedly removed core dependence on images" (commit 0f05f682a90bc125323677abf3476e1027d174f5) and "Move SkImage::encode to SkImage_Codec.cpp." (commit 83e47a954d0bf65439f3d9c0c93213063dd70da3.) These two commits were temporary fixes that this change cleans up. SkSnapshot.cpp: Check for a NULL encoder returned by SkImageEncoder::Create. BUG=https://code.google.com/p/skia/issues/detail?id=1275 R=djsollen@google.com, robertphillips@google.com Review URL: https://codereview.chromium.org/15806010 git-svn-id: http://skia.googlecode.com/svn/trunk@9364 2bbb7eff-a529-9590-31e7-b0007b416f81