images.loader.gdiplus: both BGRA and BGRX formats are supported

db4
Björn Lindqvist 2015-10-25 21:53:30 +01:00
parent 00c051cc8a
commit 8cd471eda6
2 changed files with 13 additions and 5 deletions

View File

@ -0,0 +1,9 @@
USING: images images.loader.gdiplus.private tools.test ;
IN: images.loader.gdiplus.tests
{ } [
BGRA check-pixel-format
BGRX check-pixel-format
] unit-test
[ RGB check-pixel-format ] [ unsupported-pixel-format? ] must-fail-with

View File

@ -59,15 +59,14 @@ os windows? [
ubyte-components >>component-type
f >>upside-down? ;
! Only one pixel format supported, but I can't find images in the
! wild, loaded using gdi+, in which the format is different.
! Loaded images usually have the format BGRA, text rendered BGRX.
ERROR: unsupported-pixel-format component-order ;
: check-pixel-format ( image -- )
component-order>> dup BGRA = [ drop ] [ unsupported-pixel-format ] if ;
: check-pixel-format ( component-order -- )
dup { BGRX BGRA } member? [ drop ] [ unsupported-pixel-format ] if ;
: image>gdi+-bitmap ( image -- bitmap )
dup check-pixel-format
dup component-order>> check-pixel-format
[ dim>> first2 ] [ rowstride PixelFormat32bppARGB ] [ bitmap>> ] tri
{ void* } [
GdipCreateBitmapFromScan0 check-gdi+-status