Commit Graph

329 Commits

Author SHA1 Message Date
Dmitry Timoshkov 45cdafc5e8 gdiplus: Add 8bppIndexed to the list of supported formats. 2012-07-25 20:13:18 +02:00
Dmitry Timoshkov dce93479ea gdiplus: Retrieve image palette from WIC. 2012-07-25 20:13:07 +02:00
Dmitry Timoshkov 7bcfb02169 gdiplus: Set actual resolution of an image being encoded. 2012-07-20 21:30:03 +02:00
Dmitry Timoshkov d104741a3c gdiplus: Add support for converting RGB formats to 1bpp indexed. 2012-07-17 13:09:41 +02:00
Dmitry Timoshkov 2ed1aaa930 gdiplus: Add support for converting RGB formats to 8bpp indexed. 2012-07-17 13:09:41 +02:00
Dmitry Timoshkov d9f4df0619 gdiplus: Pass palette instead of bitmap to setpixel helpers. 2012-07-17 13:09:40 +02:00
Dmitry Timoshkov 87f8e560c2 gdiplus: Pass complete palette info to convert_pixels(). 2012-07-17 13:09:40 +02:00
Dmitry Timoshkov a46c1f780a gdiplus: Use public ColorPalette structure to store image palette. 2012-07-17 13:09:39 +02:00
Dmitry Timoshkov c108fd6bf9 gdiplus: Make sure that GdipBitmapLockBits stores valid lockmode. 2012-07-17 12:54:20 +02:00
Dmitry Timoshkov ebf31c0ac6 gdiplus: Fix palette flags for a not indexed 1-bpp image. 2012-07-16 18:19:46 +02:00
Dmitry Timoshkov eca107412c gdiplus: Make sure that 1bpp bitmap images get loaded in native format. 2012-07-16 18:19:38 +02:00
Vincent Povirk 198fb25d17 gdiplus: Fix memory leak in GdipImageRotateFlip. 2012-07-12 11:48:56 -05:00
Vincent Povirk 577740f0d7 gdiplus: Fix GdipImageRotateFlip for images from streams. 2012-07-12 11:48:52 -05:00
Dmitry Timoshkov 56621638df gdiplus: Add parameter checks to GdipSetPropertyItem, print item contents in the trace. 2012-07-03 12:58:56 +02:00
Dmitry Timoshkov 3c9805d471 gdiplus: Implement GdipGetAllPropertyItems. 2012-07-02 11:00:22 +02:00
Dmitry Timoshkov 430355ef83 gdiplus: Implement GdipGetPropertySize. 2012-07-02 11:00:11 +02:00
Dmitry Timoshkov 91cf72f00f gdiplus: Add GdipSaveAdd stub. 2012-06-29 20:41:47 +02:00
Dmitry Timoshkov 670445b22b gdiplus: Implement GdipGetPropertyItem. 2012-06-29 10:46:50 +02:00
Dmitry Timoshkov 9d953c5f79 gdiplus: Implement GdipGetPropertyItemSize. 2012-06-29 10:46:50 +02:00
Dmitry Timoshkov 174b74bab2 gdiplus: Increase refcount of the source stream when loading a bitmap instead of cloning it. 2012-06-28 11:37:03 +02:00
Dmitry Timoshkov d079b66ba5 gdiplus: Avoid casting IWICBitmapFrameDecode to IWICBitmapSource. 2012-06-26 19:44:27 +02:00
Dmitry Timoshkov fb6b27de77 gdiplus: Implement GdipGetPropertyIdList. 2012-06-26 19:41:11 +02:00
Dmitry Timoshkov b9132b6815 gdiplus: Implement GdipGetPropertyCount. 2012-06-26 19:40:59 +02:00
Dmitry Timoshkov b72d236ca8 gdiplus: When loading a bitmap frame save its IWICMetadataReader interface. 2012-06-26 19:40:44 +02:00
Dmitry Timoshkov 450e09c8c6 gdiplus: Make some data const. 2012-06-21 08:36:28 +02:00
Dmitry Timoshkov 755c19f3e7 gdiplus: Implement GdipImageSelectActiveFrame. 2012-06-20 11:07:15 +02:00
Dmitry Timoshkov 9e12bc0175 gdiplus: Create a copy of the source stream when loading an image. 2012-06-19 13:44:07 +02:00
Dmitry Timoshkov 8b1bbd4fe5 gdiplus: Add active frame parameter to the WIC decoder interface. 2012-06-19 13:44:07 +02:00
Dmitry Timoshkov 527cae47e3 gdiplus: Remove a redundant cast. 2012-06-19 13:44:07 +02:00
Vincent Povirk b5ef70c583 gdiplus: Check for NULL image in GdipImageRotateFlip. 2012-06-14 19:13:27 +02:00
Dmitry Timoshkov eeee536ad6 gdiplus: Implement GdipImageGetFrameCount. 2012-05-17 17:44:26 +02:00
Dmitry Timoshkov 007d642e53 gdiplus: Save total and current frame in the image structure. 2012-05-17 17:44:25 +02:00
Alexandre Julliard 039c85346c gdiplus: CreateDIBSection doesn't need a DC for the DIB_RGB_COLORS case. 2012-05-02 12:02:17 +02:00
Vincent Povirk 57e4912108 gdiplus: Add support for JPEG encoding. 2012-04-18 17:15:53 +02:00
Vincent Povirk 93a0897660 gdiplus: Support bitmap creation from 16-bit ddb's. 2012-03-30 17:33:46 +02:00
Vincent Povirk 2540049777 gdiplus: Implement GdipCreateBitmapFromHBITMAP for 16-bit dibs. 2012-01-12 12:27:04 +01:00
Louis Lenders 8435e40874 gdiplus: Return zero properties in stubbed GdipGetPropertyCount. 2011-10-06 16:46:41 -05:00
Vincent Povirk 203d29d93a gdiplus: Fix pointer math for the 64-bit tests. 2011-10-04 15:19:02 -05:00
Vincent Povirk 5f94653159 gdiplus: Include an alpha channel in HBITMAPs created from Bitmaps. 2011-10-03 09:45:09 -05:00
Frédéric Delanoy b5a33dab88 dlls: Assorted spelling fixes. 2011-08-02 20:47:51 +02:00
Vincent Povirk 698fddf99b gdiplus: Properly clean up the new metafile data. 2011-06-22 11:25:46 +02:00
Vincent Povirk d436e51872 gdiplus: Add basic metafile recording support. 2011-05-23 11:15:41 +02:00
Marcus Meissner 4892adb414 gdiplus: Mark image_format_dimensions as static. 2011-05-18 10:54:32 +02:00
Vincent Povirk 1544640763 gdiplus: Add support for encoding TIFF images. 2011-04-11 19:32:53 +02:00
Vincent Povirk a7444e8e2c gdiplus: Use the given HPALETTE in GdipCreateBitmapFromHBITMAP. 2011-03-29 12:35:06 +02:00
Alexandre Julliard b3c333e916 gdiplus: Use signed types in convert_pixels to avoid problems on 64-bit. 2011-03-10 14:10:11 +01:00
Vincent Povirk 21d6fc9643 gdiplus: Implement ImageLockModeUserInputBuf. 2011-02-25 11:06:42 +01:00
Vincent Povirk 546b1a5cb4 gdiplus: Copy only the area requested when (un)locking bitmaps. 2011-02-25 11:06:36 +01:00
Vincent Povirk 9497e9380b gdiplus: Don't copy bits into the buffer when a bitmap is locked write-only. 2011-02-25 11:06:30 +01:00
Vincent Povirk 58eb96c9e7 gdiplus: Copy the bits on bitmap unlock if the write flag is set.
The read and write flags are independent, so a read flag being set doesn't
imply we can quit early.
2011-02-25 11:06:25 +01:00
Martin Petricek ee3c179026 gdiplus: Support for indexed formats in GdipBitmapSetPixel. 2011-01-12 15:02:38 +01:00
Vincent Povirk 32bbb0bbcf gdiplus: Correctly store the given stride in created bitmaps. 2010-11-12 17:47:43 +01:00
Vincent Povirk c8a48f237e gdiplus: Don't create a DIB section for non-alpha or reference bitmaps. 2010-10-01 13:44:39 +02:00
Vincent Povirk 9326fc13ca gdiplus: Don't try to free invalid or already-freed images. 2010-10-01 13:43:33 +02:00
Vincent Povirk 77a5b635aa gdiplus: Set flags and dpi when images are loaded. 2010-09-02 11:53:33 +02:00
Austin English 3745961b2e gdiplus: Add a stub for GdipConvertToEmfPlusToFile. 2010-08-24 15:22:29 +02:00
Vincent Povirk 517059f3f5 gdiplus: Set bitmap has alpha flag based on format. 2010-08-23 12:03:47 +02:00
Vincent Povirk 9a6eabf0b5 gdiplus: Create HBITMAP-less bitmap objects for exotic pixel formats. 2010-08-17 11:55:33 +02:00
Vincent Povirk 85a5710688 gdiplus: Don't require an HDC for the convert_unit function. 2010-08-17 11:55:33 +02:00
Vincent Povirk 3847c2dec9 gdiplus: Stub GdipGetMetafileHeaderFromStream. 2010-07-19 14:49:07 +02:00
Vincent Povirk 688eb0688b gdiplus: Stub GdipGetMetafileHeaderFromFile. 2010-07-19 14:49:07 +02:00
Vincent Povirk 2223900cf6 gdiplus: Stub GdipGetMetafileHeaderFromEmf. 2010-07-05 11:54:57 +02:00
Andrew Nguyen 6ea90c3c2e gdiplus: Add a few additional traces to gdiplus image functions. 2010-06-25 12:50:03 +02:00
Vincent Povirk 63fa6915ec gdiplus: Stub GdipGetEncoderParameterListSize. 2010-06-25 10:26:18 +02:00
Vincent Povirk 7dfc674437 gdiplus: Implement GdipGetImageThumbnail. 2010-05-10 10:02:11 +02:00
Vincent Povirk d2a01883fc gdiplus: Quiet the GdipImageForceValidation fixme. 2010-05-08 20:20:47 +02:00
Vincent Povirk 2dbc3980ef gdiplus: Implement GdipCreateHICONFromBitmap. 2010-05-08 19:25:32 +02:00
Vincent Povirk 38138784e7 gdiplus: Handle more cases in GdipCreateBitmapFromGdiDib. 2010-04-26 11:14:58 -05:00
Vincent Povirk 800e9ff6c5 gdiplus: Add test for GdipCreateBitmapFromGdiDib. 2010-04-26 11:14:53 -05:00
Vincent Povirk f2e3d99609 gdiplus: Implement GdipImageRotateFlip. 2010-03-31 11:41:13 +02:00
Vincent Povirk af7b8efc94 gdiplus: Store a reference to the image in image graphics contexts. 2010-03-29 12:19:38 +02:00
Mikhail Maroukhine 818ff38d62 gdiplus: Fix compiler warnings with flag -Wcast-qual. 2010-03-29 12:14:04 +02:00
Vincent Povirk d24a421207 gdiplus: Add support for decoding TIFF images. 2010-03-22 11:44:33 +01:00
Vincent Povirk 738059baf8 gdiplus: Support decoders with multiple signatures. 2010-03-22 11:44:24 +01:00
Justin Chevrier 818420a378 gdiplus: Basic implementation of GdipImageGetFrameCount with updated tests. 2010-03-16 12:29:14 +01:00
Vincent Povirk c1c555e3df gdiplus: Zero the MetafileHeader structure in GetMetafileHeader.
Since we return success, we should at least make sure the result is not
uninitialized memory.
2010-03-15 13:28:23 +01:00
Alasdair Sinclair 0ecd8daa16 gdiplus: Create a full BITMAPINFO to prevent clobbering memory with palette data. 2010-03-05 13:28:29 +01:00
Vincent Povirk ab124aa6b8 gdiplus: Stub GdipGetImageItemData. 2010-02-25 12:12:08 +01:00
Vincent Povirk f62560f76c gdiplus: Free the attached HBITMAP when destroying Bitmap objects. 2010-02-25 12:12:03 +01:00
Vincent Povirk 318ba28630 gdiplus: Don't use gdi32 to do pixel format conversion. 2010-02-08 17:14:43 +01:00
Vincent Povirk 4d53a4c9f5 gdiplus: Implement GetPixel for indexed color bitmaps. 2010-02-01 12:09:14 +01:00
Vincent Povirk 8be3e5cf29 gdiplus: Always trace pixel formats in hex. 2010-01-25 12:58:09 +01:00
Vincent Povirk 7afd9603b5 gdiplus: Reset the lock count when unlocking a bitmap in write mode. 2010-01-04 11:45:21 +01:00
Vincent Povirk 495c42b617 gdiplus: Add traces to unimplemented functions in image.c. 2010-01-04 11:45:07 +01:00
Vincent Povirk d694679ab6 gdiplus: Add trace to GdipBitmapUnlockBits. 2010-01-04 11:45:01 +01:00
Vincent Povirk 6bb300fa41 gdiplus: Implement GdipBitmapSetResolution. 2009-12-28 12:57:43 +01:00
Vincent Povirk 1aea88cac1 gdiplus: Implement GdipGetImage*Resolution. 2009-12-28 12:57:37 +01:00
Vincent Povirk d87b1d4980 gdiplus: Implement GdipImageGetFrameDimensionsList. 2009-12-28 11:55:20 +01:00
Vincent Povirk 7d62e1f776 gdiplus: Remove fixme from GdipImageGetFrameDimensionsCount. 2009-12-28 11:55:11 +01:00
Vincent Povirk f8ca372459 gdiplus: Add trace for values of new graphics and image objects. 2009-12-21 15:01:23 +01:00
Vincent Povirk 25dcd43e52 gdiplus: Support reading image data from device-dependent bitmaps. 2009-12-14 12:18:18 +01:00
Vincent Povirk 3424dac386 gdiplus: Explicitly copy the bits from dib sections to new bitmaps.
On Windows, GdipCreateBitmapFromHBITMAP creates a copy of the bitmap, not
a reference. Currently, we match this behavior, but this is only because
we cannot yet create bitmap objects that reference existing memory. If
GdipCreateBitmapFromScan0 were fixed to do this, FromHBITMAP would break.

Therefore, we always pass NULL to FromScan0 so that it allocates new memory
for the bitmap.
2009-12-14 12:18:10 +01:00
Vincent Povirk 6c040271c1 gdiplus: Initialize the palettes of new indexed bitmaps. 2009-12-14 12:04:04 +01:00
Vincent Povirk 9615dd8fdb gdiplus: Implement GdipGetImagePalette. 2009-12-14 12:04:03 +01:00
Vincent Povirk 59f45f2cbb gdiplus: Implement GdipGetImagePaletteSize. 2009-12-14 12:04:03 +01:00
Vincent Povirk 39dc81cc80 gdiplus: Implement GdipSetImagePalette. 2009-12-14 12:04:03 +01:00
Vincent Povirk 8b154a590e gdiplus: Fix cleanup after errors in GdipCloneImage. 2009-12-07 14:18:28 +01:00
Vincent Povirk bf04d3fa69 gdiplus: Implement GdipCloneBitmapArea. 2009-12-07 14:18:28 +01:00
Kirill K. Smirnov 125c5645cb gdiplus: Avoid deleting non-existent object. 2009-10-26 11:19:32 +01:00
Vincent Povirk cab50432f6 gdiplus: Enable encoding of PNG images. 2009-10-09 12:00:23 +02:00
Vincent Povirk 809f721aba gdiplus: Implement GdipBitmapSetPixel. 2009-09-24 13:26:49 +02:00
Vincent Povirk 41140a950b gdiplus: Implement GdipBitmapGetPixel. 2009-09-24 13:26:35 +02:00
Marcus Meissner e70e1249c3 gdiplus: do not memcpy over NULL ptrs (Coverity). 2009-09-22 16:15:48 +02:00
Vincent Povirk 0595fc5e03 gdiplus: Implement GdipGetImageRawFormat. 2009-09-15 17:34:12 -05:00
Vincent Povirk 0313f88794 gdiplus: Disable alpha channel support for BMP images. 2009-09-08 12:13:01 +02:00
Vincent Povirk 91e0ee260b gdiplus: Use WIC to decode PNG files. 2009-09-08 12:12:54 +02:00
Vincent Povirk 947e39dbc7 gdiplus: Use WIC to decode BMP files. 2009-09-08 12:12:45 +02:00
Vincent Povirk 6c2d85ca84 gdiplus: Use WIC to decode GIF files. 2009-09-02 10:25:02 +02:00
Vincent Povirk faad683e47 gdiplus: Use WIC to decode JPEG files. 2009-09-02 10:24:53 +02:00
Vincent Povirk e4a3ad81be gdiplus: Use WIC to encode images. 2009-09-02 10:24:47 +02:00
Vincent Povirk 9d149e606b gdiplus: Use WIC to decode ICO files. 2009-09-01 12:43:48 +02:00
Vincent Povirk cb3ee716a2 gdiplus: Reimplement GdipCreateBitmapFromHICON based on RGBA bitmaps. 2009-08-29 16:48:56 +02:00
Vincent Povirk 7fdc0208e8 gdiplus: Return the real image bits from LockBits when possible. 2009-08-29 16:48:55 +02:00
Vincent Povirk 436b3be651 gdiplus: Create DIBs instead of IPictures in CreateBitmapFromScan0. 2009-08-29 16:48:55 +02:00
Vincent Povirk d87adf2a60 gdiplus: Don't use IPicture to manage the HDC associated with a GpBitmap. 2009-08-29 16:48:55 +02:00
Vincent Povirk e48524ceb6 gdiplus: Add and use an HBITMAP field in GpBitmap objects. 2009-08-29 16:48:55 +02:00
Vincent Povirk b99abe2e91 gdiplus: Use the decoder list to decide how to load image files. 2009-08-29 16:48:55 +02:00
Vincent Povirk 2f0b4bf36b gdiplus: Add PNG to the decoders list. 2009-08-29 16:48:54 +02:00
Vincent Povirk 28e345882c gdiplus: Implement GdipCreateHBITMAPFromBitmap. 2009-08-28 11:54:50 +02:00
Vincent Povirk 7246a487d9 gdiplus: Remove an ipicture reference in GdipCreateBitmapFromStream. 2009-08-21 11:28:38 +02:00
Vincent Povirk 69ba1415e3 gdiplus: Add codecs for the image formats we can currently decode. 2009-08-21 11:17:20 +02:00
Vincent Povirk b27c3c1983 gdiplus: Only attempt to encode if the Encoder flag is set. 2009-08-21 11:16:58 +02:00
Vincent Povirk 40df7dbc07 gdiplus: Implement GdipGetImageDecoders[Size]. 2009-08-21 11:16:50 +02:00
Vincent Povirk 96023267c8 gdiplus: Store the codec information and functions in a single structure. 2009-08-21 11:16:38 +02:00
Vincent Povirk d76d00ea7e gdiplus: Remove an unnecessary picture reference in GdipSaveImageToFile. 2009-08-11 17:29:58 +02:00
Luke Benstead ea96cd3a52 gdiplus: Implement stub for GdipGetImagePalette. 2009-08-03 17:35:52 +02:00
Alexandre Julliard 4d31a25f50 gdiplus: Don't return garbage from the GdipCreateHBITMAPFromBitmap stub. 2009-07-01 12:14:40 +02:00
Andrew Eikum f01bfea62e gdiplus: Stub for GdipBitmapCreateApplyEffect. 2009-06-05 15:19:56 +02:00
Andrew Eikum ad2341253c gdiplus: Stub for GdipBitmapApplyEffect. 2009-06-05 15:19:56 +02:00
Andrew Eikum 46de8c0eb4 gdiplus: Stub for GdipEmfToWmfBits. 2009-06-04 12:38:33 +02:00
Andrew Eikum 84a434fd25 gdiplus: Stub for GdipDeleteEffect. 2009-06-03 11:53:09 +02:00
Andrew Eikum 57134fc890 gdiplus: Stub for GdipCloneBitmapArea. 2009-06-02 11:57:22 +02:00
Vincent Povirk 8219db2d6d gdiplus: Stub GdipCreateHICONFromBitmap. 2009-05-28 12:42:17 +02:00
Stefan Leichter cef1598390 gdiplus: Add stub for GdipImageRotateFlip. 2009-05-08 13:03:21 +02:00
Stefan Leichter a91a97d8ef gdiplus: Add stub for GdipGetImageThumbnail. 2009-05-06 12:06:43 +02:00
Massimo Del Fedele a3221e7f23 gdiplus: Add stub for GdipBitmapSetPixel. 2009-04-28 13:10:01 +02:00
Andrew Nguyen f82a086f56 gdiplus: Stub GdipBitmapSetResolution. 2009-04-20 17:20:12 +02:00
Vincent Povirk efcd0bbffa gdiplus: Stub GdipCloneBitmapAreaI. 2009-03-09 12:04:28 +01:00
Vincent Povirk 3db77ce50b gdiplus: Return a NULL bitmap when GdipCreateBitmapFromScan0 fails. 2009-03-05 16:16:25 +01:00
Vincent Povirk f365ef46f0 gdiplus: Fix GdipCreateBitmapFromHBITMAP flipping images vertically.
GdipCreateBitmapFromHBITMAP currently assumes that all bitmaps are
top-down, even though a positive height (which it also assumes)
signals a bottom-up DIB. The net result is that
GdipCreateBitmapFromHBITMAP flips images vertically.
2009-02-18 12:18:08 +01:00
Vincent Povirk 65750fabbb gdiplus: Handle negative stride in GdipCreateBitmapFromScan0. 2009-02-18 12:17:49 +01:00
Nikolay Sivov 5bc54ed97e gdiplus: Implemented GdipCreateBitmapFromHICON (with tests). 2009-02-03 12:48:07 +01:00
Andrey Turkin 1138c28eeb gdiplus: GdipLoadImageFromStream should use well-known pixel format constants when possible. 2009-01-15 12:42:43 +01:00
Michael Stefaniuc b53877d92e gdiplus: Remove superfluous pointer casts. 2009-01-14 13:51:00 +01:00
Michael Stefaniuc 50ff549420 gdiplus: Remove some superfluous casts. 2008-12-05 12:36:41 +01:00
Michael Stefaniuc 4386caa13b gdiplus: Reduce the number of casts by using the proper type for variables. 2008-12-05 12:36:37 +01:00
Nikolay Sivov 348c115af1 gdiplus: Stub for GdipGetImagePaletteSize. 2008-12-02 14:12:32 +01:00
Vincent Povirk f3cad17a9b gdiplus: Implement CachedBitmap based on Image. 2008-11-24 14:36:50 +01:00
Hans Leidekker 8b15fa4b2a gdiplus: Improve GdipGetImageRawFormat stub. 2008-11-24 14:25:10 +01:00
Hans Leidekker 6122c77b9d gdiplus: Add stub implementations of GdipCreateHalftonePalette and GdipImageForceValidation. 2008-11-24 14:25:10 +01:00