aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/images
Commit message (Collapse)AuthorAge
* Test region decoding in skimage, plus fixes.Gravatar scroggo@google.com2013-05-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add tests in skimage to perform region decoding. Write out a PNG of the region as well as a bitmap obtained with extractSubset for comparison. Rename decodeRegion to decodeSubset, so it will not be confused with SkRegion. (Leave a function called decodeRegion which calls decodeSubset.) Clean up some comments. Use png_set_interlaced_pass instead of modifying pass directly. Make some changes to region decoding to fix problems I discovered during testing: Only call getAddr within a valid range. Check for a NULL fInputStream. Return a boolean for whether cropBitmap succeeded. In cropBitmap, do not attempt to draw to a bitmap to an Index8 bitmap, which crashes. Use extractSubset instead. Remove an assert. R=djsollen@google.com Review URL: https://codereview.chromium.org/14567011 git-svn-id: http://skia.googlecode.com/svn/trunk@8996 2bbb7eff-a529-9590-31e7-b0007b416f81
* Support for libpng > 1.2.Gravatar commit-bot@chromium.org2013-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | * Add conditional defines for deprecated NULL type casts. * Use wrapper functions for accessing png_structp & png_infop fields (direct access is deprecated). Tested on Fedora 17 (libpng 1.5) and Ubuntu 12.04 (libpng 1.2). Note: there is one png_structp direct field acces left in SkPNGImageDecoder::onDecodeRegion() for which libpng does not provide a wrapper method (png_ptr->pass = 0). That should be OK for now as the code is only enabled when SK_BUILD_FOR_ANDROID is set, and the Android libpng version is striclty controlled. But it may become an issue in the future when/if Android decides to update libpng, so we should investigate a solution. R=scroggo@google.com, reed@google.com, djsollen@google.com Author: fmalita@google.com Review URL: https://chromiumcodereview.appspot.com/14645018 git-svn-id: http://skia.googlecode.com/svn/trunk@8956 2bbb7eff-a529-9590-31e7-b0007b416f81
* Build fix attempt number 2.Gravatar scroggo@google.com2013-05-01
| | | | | | Review URL: https://codereview.chromium.org/14646025 git-svn-id: http://skia.googlecode.com/svn/trunk@8943 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix the build.Gravatar scroggo@google.com2013-05-01
| | | | | | | | Remove an unused function warning. Review URL: https://codereview.chromium.org/14785008 git-svn-id: http://skia.googlecode.com/svn/trunk@8942 2bbb7eff-a529-9590-31e7-b0007b416f81
* Force linking with image decoders for images project.Gravatar scroggo@google.com2013-05-01
| | | | | | | | | | | | | | | | | | | | | Previously, each tool that wanted to use image decoders but did not specifically reference them had to create a dummy function that references them in order to ensure they are not stripped by the linker. Instead of making each tool reference each image decoder, do it once in SkImageDecoder.cpp. Now each tool will have image decoders linked in, assuming it includes the images project. This fixes a bug where SKPs with encoded data could not be read by bench_ or render_pictures. R=djsollen@google.com, robertphillips@google.com Review URL: https://codereview.chromium.org/14678003 git-svn-id: http://skia.googlecode.com/svn/trunk@8941 2bbb7eff-a529-9590-31e7-b0007b416f81
* Updates to skimage tool to use it for testing.Gravatar scroggo@google.com2013-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | skimage_main.cpp: More changes in the interest of testing our decoders. force_all_opaque before writing PNG files. Test reencoding the image to its original type (if possible), and then test redecoding it (to make sure the encoding was successful). Add an option to turn off this behavior. Merge decodeFileAndWrite with decodeFile. SkImageDecoder: Add kUnknown_Type to SkImageEncoder::Types. Add a static function to get the Format of an SkStream. In getFormatName(), remove an incorrect assert. When calling the flavor of DecodeStream that returns the Format, check the stream if the decoder returns kUnknown_Format. BUG=https://code.google.com/p/skia/issues/detail?id=1241 Review URL: https://codereview.chromium.org/14363003 git-svn-id: http://skia.googlecode.com/svn/trunk@8862 2bbb7eff-a529-9590-31e7-b0007b416f81
* ARGB image encoder for checksums.Gravatar bungeman@google.com2013-04-23
| | | | | | | https://codereview.chromium.org/14267031/ git-svn-id: http://skia.googlecode.com/svn/trunk@8831 2bbb7eff-a529-9590-31e7-b0007b416f81
* Updates to images project.Gravatar scroggo@google.com2013-04-17
| | | | | | | | | | | | | | | | | | | | | | Use the SkImageEncoder_Factory on all platforms. On Windows and Mac, register the platform's image encoder as an option for SkImageEncoder::Create. Also add more types that can be decoded. Update comments for SkImageDecoder to be more accurate. Add more types to SkImageEncoder::Type, and return the correct type of encoder, if it exists. Use a custom version of SkImageDecoder::Factory on Windows and Mac to check the stream for registered decoders before defaulting to the platform's version. Share code with the existing SkImageDecoder::Factory method. Preparation for testing decoders and encoders: BUG=https://code.google.com/p/skia/issues/detail?id=1241 Review URL: https://codereview.chromium.org/14298010 git-svn-id: http://skia.googlecode.com/svn/trunk@8730 2bbb7eff-a529-9590-31e7-b0007b416f81
* Only use JDCT_IFAST if it's supported.Gravatar scroggo@google.com2013-04-17
| | | | | | | | | When encoding to JPEG, do not switch to JDCT_IFAST unless DCT_IFAST_SUPPORTED is defined. Review URL: https://codereview.chromium.org/14031013 git-svn-id: http://skia.googlecode.com/svn/trunk@8728 2bbb7eff-a529-9590-31e7-b0007b416f81
* Only use JDCT_FAST if it is supported in jpeg.Gravatar scroggo@google.com2013-04-12
| | | | | | | | Fixes a bug where jpeg decoder did not work on linux. Review URL: https://codereview.chromium.org/14188002 git-svn-id: http://skia.googlecode.com/svn/trunk@8661 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix warning (again) for SkMovieGravatar reed@google.com2013-03-22
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8336 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix warning for SkMovieGravatar reed@google.com2013-03-22
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8332 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update code to use helper function for better readability/searching.Gravatar djsollen@google.com2013-03-21
| | | | | | Review URL: https://codereview.chromium.org/12834012 git-svn-id: http://skia.googlecode.com/svn/trunk@8287 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fail to return a codec if the provided stream does not support rewind.Gravatar djsollen@google.com2013-03-20
| | | | | | Review URL: https://codereview.chromium.org/12545052 git-svn-id: http://skia.googlecode.com/svn/trunk@8277 2bbb7eff-a529-9590-31e7-b0007b416f81
* Upstream changes from Android for decoding jpeg images.Gravatar djsollen@google.com2013-03-20
| | | | | | Review URL: https://codereview.chromium.org/12438025 git-svn-id: http://skia.googlecode.com/svn/trunk@8267 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove SK_ENABLE_LIBPNG define as it is no longer needed by Android.Gravatar djsollen@google.com2013-03-20
| | | | | | Review URL: https://codereview.chromium.org/12958002 git-svn-id: http://skia.googlecode.com/svn/trunk@8262 2bbb7eff-a529-9590-31e7-b0007b416f81
* use SkStream::NewFromFile()Gravatar mike@reedtribe.org2013-03-19
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8210 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2013-03-15
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8168 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix (bool) warning with SkToBoolGravatar reed@google.com2013-03-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8160 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix window's build errorsGravatar commit-bot@chromium.org2013-03-14
| | | | | | | | | | Author: djsollen@google.com Reviewed By: bsalomon@google.com,borenet@google.com,reed@google.com Review URL: https://chromiumcodereview.appspot.com/12668007 git-svn-id: http://skia.googlecode.com/svn/trunk@8158 2bbb7eff-a529-9590-31e7-b0007b416f81
* Upstream Android modifications to the image encoders/decoders.Gravatar commit-bot@chromium.org2013-03-14
| | | | | | | | | | | | | | This CL does not update the libjpeg as that change is large enough to warrant its own CL. Author: djsollen@google.com Reviewed By: reed@google.com,robertphillips@google.com,scroggo@google.com Review URL: https://chromiumcodereview.appspot.com/12604006 git-svn-id: http://skia.googlecode.com/svn/trunk@8155 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make SkTDArray accessors const-friendly.Gravatar commit-bot@chromium.org2013-02-28
| | | | | | | | This change creates const and non-const versions of SkTDArray::begin(), end(), operator[]() and getAt(). This will keep us from inadvertently changing a const SkTDArray, which the previous signatures allowed. Review URL: https://chromiumcodereview.appspot.com/12315131 git-svn-id: http://skia.googlecode.com/svn/trunk@7902 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix a bunch of warnings, mainly around rowBytes.Gravatar scroggo@google.com2013-02-25
| | | | | | | | | | | My recent change changed the way SkBitmap::fRowBytes is stored, and parameter/return values referring to rowBytes were changed to type size_t. Change the storage back, and eliminate warnings resulting from returning a size_t. Review URL: https://codereview.appspot.com/7396059 git-svn-id: http://skia.googlecode.com/svn/trunk@7855 2bbb7eff-a529-9590-31e7-b0007b416f81
* move SkFDStream out of images into coreGravatar reed@google.com2013-02-25
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@7846 2bbb7eff-a529-9590-31e7-b0007b416f81
* Create SkLazyPixelRef which performs lazy decoding.Gravatar scroggo@google.com2013-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new pixel ref behaves similarly to SkImageRef, with some key differences: It does not depend on the images project. It requires an SkImageCache, which handles allocation and caching of the pixel memory. It takes a function signature for decoding which decodes into already allocated pixel memory rather than into an SkBitmap. Add two implementations of SkImageCache: SkLruImageCache and SkAshmemImageCache. Replace SkSerializationHelpers::DecodeBitmap with SkPicture::InstallPixelRefProc, and update sites that referenced it. SkBitmapFactory now sets the pixel ref to a new object of the new class SkLazyPixelRef, provided it has an SkImageCache for caching. Provide an option to do lazy decodes in render_pictures and bench_pictures. SkPicture: Eliminate the default parameters in the constructor. If a proc for decoding bitmaps is installed, use it to decode any encoded data in subpictures. When parsing deserializing subpictures, check for success. When serializing subpictures, pass the picture's bitmap encoder to the subpicture's call to serialize. Update BitmapFactoryTest to test its new behavior. BUG=https://code.google.com/p/skia/issues/detail?id=1008 BUG=https://code.google.com/p/skia/issues/detail?id=1009 Review URL: https://codereview.appspot.com/7060052 git-svn-id: http://skia.googlecode.com/svn/trunk@7835 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix errors when compiling with -Wall -Werror on Android.Gravatar djsollen@google.com2013-02-07
| | | | | | | | This CL also turns those features on by default on Android Review URL: https://codereview.appspot.com/7313049 git-svn-id: http://skia.googlecode.com/svn/trunk@7645 2bbb7eff-a529-9590-31e7-b0007b416f81
* landing https://codereview.appspot.com/7225077/ -- tweak for GIF 5.x apiGravatar reed@google.com2013-02-01
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@7523 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix android errors when unflattening an SkImageRef_ashmem object.Gravatar djsollen@google.com2013-02-01
| | | | | | Review URL: https://codereview.appspot.com/7228071 git-svn-id: http://skia.googlecode.com/svn/trunk@7514 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2013-01-26
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@7406 2bbb7eff-a529-9590-31e7-b0007b416f81
* kill unused SkFlipPixelRefGravatar reed@google.com2012-12-13
| | | | | | Review URL: https://codereview.appspot.com/6949043 git-svn-id: http://skia.googlecode.com/svn/trunk@6781 2bbb7eff-a529-9590-31e7-b0007b416f81
* Create a factory to decode an SkBitmap from an SkData.Gravatar scroggo@google.com2012-11-29
| | | | | | | | | | | | | | | | Add a test and a GM for the factory, and a PNG file for it to decode. The PNG file is copyright-free, obtained from http://openclipart.org/detail/29213/paper-plane-by-ddoo In cmykjpeg, do not attempt to decode in the constructor, since it currently crashes on Mac (if you provide the correct resource path). Even when we fix this crash there is no need to do it in the constructor, since we create all of the gms in order to get their names (to determine whether to run them). Review URL: https://codereview.appspot.com/6847122 git-svn-id: http://skia.googlecode.com/svn/trunk@6618 2bbb7eff-a529-9590-31e7-b0007b416f81
* Extract transform_scanline_XXXX functions into transform_scanline.h for ↵Gravatar epoger@google.com2012-11-16
| | | | | | | | code-sharing Review URL: https://codereview.appspot.com/6849065 git-svn-id: http://skia.googlecode.com/svn/trunk@6468 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add the ability to provide function pointers to SkPicture serializationGravatar scroggo@google.com2012-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and deserialization for encoding and decoding bitmaps. Remove kForceFlattenBitmapPixels_Flag, which is no longer used. When an SkOrderedReadBuffer needs to read a bitmap, if it does not have an image decoder, use a dummy bitmap. In GM, add a tolerance option for color differences, used when testing picture serialization, so it can assume two images are the same even though PNG encoding/decoding may have resulted in small differences. Create dummy implementations for SkImageDecoder and SkImageEncoder functions in SkImageDecoder_empty so that a project that does not want to include the images project it can still build. Allow ports to build without images project. In Mac's image encoder, copy 4444 to 8888 before encoding. Add SkWriter32::reservePad, to provide a pointer to write non 4 byte aligned data, padded with zeroes. In bench_ and render_ pictures, pass decode function to SkPicture creation from a stream. BUG=https://code.google.com/p/skia/issues/detail?id=842 Review URL: https://codereview.appspot.com/6551071 git-svn-id: http://skia.googlecode.com/svn/trunk@5818 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make flattenables no longer depend on global static initializers.Gravatar scroggo@google.com2012-09-21
| | | | | | | | | | | | | | | | | Instead, force all builds to call InitializeFlattenables. Remove the make_debugger script, which was created to force rebuilding without global static initializers so that all flattenables would be linked. It is no longer necessary since all flattenables will be linked thanks to InitializeFlattenables, which now can (and must) be called when global static initializers are turned on. BUG=https://code.google.com/p/skia/issues/detail?id=903 BUG=https://code.google.com/p/skia/issues/detail?id=902 Review URL: https://codereview.appspot.com/6548044 git-svn-id: http://skia.googlecode.com/svn/trunk@5642 2bbb7eff-a529-9590-31e7-b0007b416f81
* Result of running tools/sanitize_source_files.py (which was added in ↵Gravatar rmistry@google.com2012-08-23
| | | | | | | | | https://codereview.appspot.com/6465078/) This CL is part II of IV (I broke down the 1280 files into 4 CLs). Review URL: https://codereview.appspot.com/6474054 git-svn-id: http://skia.googlecode.com/svn/trunk@5263 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update SkFlattenable buffers to be more modular.Gravatar djsollen@google.com2012-08-07
| | | | | | | | | | | | | | | | | This CL is an effort to stage the conversion to named parameters for all SkFlattenable commands. This particular stage only does the following two things... 1. Move flattenable buffers from SkFlattenable.h into their own header. 2. Update and Add new read write methods for better clarity and convenience. BUG= Review URL: https://codereview.appspot.com/6448095 git-svn-id: http://skia.googlecode.com/svn/trunk@4980 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove duplicate definition of SkAlign8()Gravatar reed@google.com2012-06-27
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4363 2bbb7eff-a529-9590-31e7-b0007b416f81
* Expanded distribution of instance countingGravatar robertphillips@google.com2012-06-21
| | | | | | | | http://codereview.appspot.com/6300114/ git-svn-id: http://skia.googlecode.com/svn/trunk@4291 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix warnings on Mac in src/imagesGravatar caryclark@google.com2012-06-06
| | | | | | | | | | | | | | | | | | Fix these class of warnings: - unused functions - unused locals - sign mismatch - missing function prototypes - missing newline at end of file - 64 to 32 bit truncation The changes prefer to link in dead code in the debug build with 'if (false)' than to comment it out, but trivial cases are commented out or sometimes deleted if it appears to be a copy/paste error. Review URL: https://codereview.appspot.com/6299048 git-svn-id: http://skia.googlecode.com/svn/trunk@4179 2bbb7eff-a529-9590-31e7-b0007b416f81
* Mutexes in pixelrefs were done very sloppily initially. The code (a) assumes allGravatar reed@google.com2012-05-17
| | | | | | | | | | | | | | | | | | | | pixelref subclasses want a mutex to guard their lock/unlock virtuals, and (b) most subclasses use the same mutex for *all* of their instances, even when there is no explicit need to guard modifying one instances with another. When we try drawing bitmaps from multiple threads, we are seeing a lot of slow- down from these mutexes. This CL has two changes to try to speed things up. 1. Add setPreLocked(), for pixelrefs who never need the onLockPixels virtual to be called. This speeds up those subclasses in multithreaded environs as it avoids the mutex lock all together (e.g. SkMallocPixelRef). 2. Add setMutex() to allow a subclass to change the mutex choice. ashmem wants this, since its unflattening constructor cannot pass down the null, it needs to cleanup afterwards. Review URL: https://codereview.appspot.com/6199075 git-svn-id: http://skia.googlecode.com/svn/trunk@3985 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove unused android code in JPEG decoder.Gravatar djsollen@google.com2012-04-05
| | | | | | Review URL: https://codereview.appspot.com/5986047 git-svn-id: http://skia.googlecode.com/svn/trunk@3614 2bbb7eff-a529-9590-31e7-b0007b416f81
* Cleanup code related to SkFlattenable::flatten()Gravatar djsollen@google.com2012-03-29
| | | | | | | | | | | | | | | | | The following changes were made by this CL: 1. Make flatten() a protected method as callers should use SkFlattenableWriteBuffer to flatten an object 2. Make flatten a const method (including subclasses) 3. Mark subclass implementation of flatten with SK_OVERRIDE 4. Ensure overridden flatten impls call their parent 5. Remove no-op implementations of flatten from subclasses Additionally, if necessary the unflattening constructor was also moved to the protected section of the subclasses header if it was not already there. git-svn-id: http://skia.googlecode.com/svn/trunk@3540 2bbb7eff-a529-9590-31e7-b0007b416f81
* Consolidate PixelRef flattables with the standard implGravatar djsollen@google.com2012-03-28
| | | | | | | | | | The flatten method on these functions can no longer be const as SkFlattenables declaration is not const and would result in the const methods only being called when the reference to the object was const. Review URL: https://codereview.appspot.com/5941043 git-svn-id: http://skia.googlecode.com/svn/trunk@3533 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix a bunch of Coverity defects - class members not initialized in the ↵Gravatar vandebo@chromium.org2012-03-28
| | | | | | | | | | constructor. CID=14533,14036,9275,9271,4156,4153,4151,1666,1665,1618,1617,1616,1615 Review URL: https://codereview.appspot.com/5940049 git-svn-id: http://skia.googlecode.com/svn/trunk@3532 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove unused classes from the build.Gravatar djsollen@google.com2012-03-28
| | | | | | Review URL: https://codereview.appspot.com/5938053 git-svn-id: http://skia.googlecode.com/svn/trunk@3529 2bbb7eff-a529-9590-31e7-b0007b416f81
* Improved codec link-forcing system by adding Encoder/Decoder creation entry ↵Gravatar robertphillips@google.com2012-03-23
| | | | | | | | | | | points http://codereview.appspot.com/5881055/ git-svn-id: http://skia.googlecode.com/svn/trunk@3481 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding CMYK jpeg changes w/o .gyp alterationsGravatar robertphillips@google.com2012-03-20
| | | | | | | | http://codereview.appspot.com/5785054/ git-svn-id: http://skia.googlecode.com/svn/trunk@3442 2bbb7eff-a529-9590-31e7-b0007b416f81
* reverting to 3437Gravatar robertphillips@google.com2012-03-20
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3439 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix for CMYK jpeg decoding issue (69 - unable to read some jpeg files on ↵Gravatar robertphillips@google.com2012-03-20
| | | | | | | | | | android) http://codereview.appspot.com/5785054/ git-svn-id: http://skia.googlecode.com/svn/trunk@3438 2bbb7eff-a529-9590-31e7-b0007b416f81
* Restore SkImageDecoder_libjpeg, which may still be used by the Android build.Gravatar tomhudson@google.com2012-03-02
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3304 2bbb7eff-a529-9590-31e7-b0007b416f81