[PATCH 1/9 v3] gdiplus: Add partial support for GdipDrawImagePointsRect on metafile

Piotr Caban piotr.caban at gmail.com
Fri Jun 30 09:33:48 CDT 2017


On 06/30/17 16:14, Dmitry Timoshkov wrote:
> Piotr Caban <piotr at codeweavers.com> wrote:
> 
>> +static GpStatus METAFILE_CreateCompressedImageStream(GpImage *image, IStream **stream, DWORD *size)
>> +{
>> +    static const CLSID png_clsid = { 0x557cf406, 0x1a04, 0x11d3,
>> +        { 0x9a, 0x73, 0x0, 0x0, 0xf8, 0x1e, 0xf3, 0x2e } };
>> +    LARGE_INTEGER zero;
>> +    STATSTG statstg;
>> +    GpStatus stat;
>> +    HRESULT hr;
>> +
>> +    *size = 0;
>> +
>> +    hr = CreateStreamOnHGlobal(NULL, TRUE, stream);
>> +    if (FAILED(hr)) return hresult_to_status(hr);
>> +
>> +    stat = GdipSaveImageToStream(image, *stream, &png_clsid, NULL);
> 
> Even internally gdiplus shouldn't do this kind of hacks IMO, if there is
> a need for a shortcut for a particular encoder class id it's better to
> add a helper. Have a look at the encoder/decoder tests how it's supposed
> to look like.
I've done it this way because I don't think we should go through 
enumerating all supported formats internally. How about using 
encode_image_png function directly?

Thanks,
Piotr



More information about the wine-devel mailing list