http://bugs.winehq.org/show_bug.cgi?id=11892
Summary: GdipCreateBitmapFromFile & GdipCreateBitmapFromStream give upside down bitmap Product: Wine Version: CVS/GIT Platform: Other OS/Version: other Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: gdiplus AssignedTo: wine-bugs@winehq.org ReportedBy: cbill.lam@gmail.com
if use GdipCreateBitmapFromFile or GdipCreateBitmapFromStream to create bitmap from a bmp or jpeg file, the bitmap created is upside down as seen from the negative stride in GdipBitmapLockBits. However native gdiplus gives positive stride and this may be an undocumented feature of gdiplus.
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #1 from Austin English austinenglish@gmail.com 2008-06-12 13:06:33 --- Is this still an issue in current (1.0-rc4 or newer) wine? Please attach terminal output as well as a +gdiplus log.
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #2 from bill lam cbill.lam@gmail.com 2008-06-12 20:03:35 --- problem still exist. it does not crash so that is a log necessary? The code the reproduce error is as following, threat it as pseudo-code if the syntax looks weird to you.
readimg1=: 3 : 0 BMP=. TOK=. ,_1 DATA=. i.4%~#BitmapData assi rc [ 'rc TOK'=. 2{. GdiplusStartup TOK;GdiplusStartupInput;0 GdipCreateBitmapFromFile (u:y,2#{.a.);BMP assi rc [ 'rc DATA'=. 0 _1{ GdipBitmapLockBits ({.BMP);(<0);ImageLockModeRead;PixelFormat32bppARGB;DATA 'w h s f p r'=. DATA 1!:2&2] DATA z=. |.^:(s<0) w&{."1^:(w~:|s%4) (h,|s%4)$memr p,((s<0)*s*<:h),(h*<.|s%4),JINT GdipBitmapUnLockBits ({.BMP);DATA GdipDisposeImage {.BMP GdiplusShutdown {.TOK z )
pay attention to the negative stride returned in GdipBitmapLockBits.
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #3 from Austin English austinenglish@gmail.com 2008-12-11 10:36:20 --- Is this still an issue in current (1.1.10 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #4 from Austin English austinenglish@gmail.com 2008-12-12 01:26:50 --- Bill, please post in bugzilla:
On Thu, 11 Dec 2008, wine-bugs@winehq.org wrote:
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #3 from Austin English austinenglish@gmail.com 2008-12-11 10:36:20 --- Is this still an issue in current (1.1.10 or newer) wine?
same in 1.1.10
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #5 from bill lam cbill.lam@gmail.com 2008-12-12 01:48:37 --- same in 1.1.10, negative stride returned.
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #6 from Austin English austinenglish@gmail.com 2008-12-12 10:48:27 --- If you've got a few minutes, it'd be helpful to turn that into a conformance test: http://wiki.winehq.org/ConformanceTests
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #7 from bill lam cbill.lam@gmail.com 2008-12-12 20:23:36 --- I have just done make test -k, it said failed.
btw I have already posted code to reproduce the bug albeit it was only pseudo code since I am not a wine developer. If any developer become interested to look into it, I'll happy to discuss.
http://bugs.winehq.org/show_bug.cgi?id=11892
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|CVS/GIT |unspecified
--- Comment #8 from Austin English austinenglish@gmail.com 2009-01-18 03:48:04 --- Removing deprecated CVS/GIT version tag. Please retest in current git. If the bug is still present in today's wine, but was not present in some earlier version of wine, please update version field to earliest known version of wine that had the bug. Thanks!
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #9 from Austin English austinenglish@gmail.com 2009-07-21 13:50:32 --- Is this still an issue in current (1.1.26 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #10 from bill lam cbill.lam@gmail.com 2009-07-22 09:55:05 --- not yet fixed. I should already provided enough detail to reproduce the bug. Just read any bmp with that api and examine the stride.
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #11 from Vincent Povirk madewokherd@gmail.com 2009-07-22 11:28:21 --- This is an implementation detail. You shouldn't rely on it. If you really need positive stride, use ImageLockModeUserInputBuf.
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #12 from bill lam cbill.lam@gmail.com 2009-07-22 14:59:13 --- You have to tell this to other developers that their window applications failed on wine because their applications depended on gdiplus implementation details that not replicated in wine gdiplus.
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #13 from Vincent Povirk madewokherd@gmail.com 2009-11-11 16:35:42 --- This should be fixed. Please retest.
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #14 from bill lam cbill.lam@gmail.com 2009-11-11 22:25:28 --- Not in commit ab081aa Did you test it ok?
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #15 from Austin English austinenglish@gmail.com 2010-05-19 16:45:21 --- This is your friendly reminder that there has been no bug activity for 6 months. Is this still an issue in current (1.1.44 or newer) wine?
http://bugs.winehq.org/show_bug.cgi?id=11892
--- Comment #16 from bill lam cbill.lam@gmail.com 2010-05-21 10:48:31 --- now positive stride, not upside down anymore. thanks.
http://bugs.winehq.org/show_bug.cgi?id=11892
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #17 from Nikolay Sivov bunglehead@gmail.com 2010-05-21 11:02:36 --- (In reply to comment #16)
now positive stride, not upside down anymore. thanks.
Fixed.
http://bugs.winehq.org/show_bug.cgi?id=11892
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #18 from Alexandre Julliard julliard@winehq.org 2010-05-21 14:38:36 --- Closing bugs fixed in 1.2-rc1.