高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】incorrect colors in rendered bitmap
incorrect colors in rendered bitmap
incorrect colors in rendered bitmap
we are using the dwgdirect libraries to render cad files as bitmaps. recently we upgraded from version 1.13 of dwgdirect to version 2.0.3. with the new version of the libraries, we are now seeing different behavior with regards to the output bitmaps. specifically, when we render to bitmaps with less than 24bpp, we get incorrect colors. when we execute the same code, with the same input files with version 1.13, we get the correct, expected colors.
the portion of our code which sets the canvas color, background color, and palette follows. you see from this code that we expect a white background and canvas.
code:
pdevice->properties()->putat("bitperpixel", odrxvariantvalue(oduint32(depth)));
pdevice->setbackgroundcolor(odrgb(255, 255, 255));
pdevice->setlogicalpalette(odcmacadpalette(odrgb(255, 255, 255)), 256);
pctx->setpalettebackground (odrgb(255, 255, 255));
i have attached a zip archive with several files that demonstrate this behavior. the first example uses the file hummer.dwg as input. when rendered to 4bpp with version 1.13, it produces the file hummer_4bpp_oldlib.bmp. when rendered to 4bpp with version 2.0.3, it produces the file hummer_4bpp_newlib.bmp. if you look at the new version, you see that the background is yellow, when it is expected to be white. when rendered at 8bpp, the file produced with version 2.0.3 produces the expected colors.
the second example uses the file logo.dwg as input. when rendered to 4bpp with version 1.13 it produces the file logo_4bpp_oldlib.bmp, which is rendered correctly. when rendered to 4bpp with version 2.0.3, it produces the file logo_4bpp_newlib.bmp, which contains a grey background and canvas and does not display all of the drawing elements. when rendered to 8bpp with version 2.0.3, we see that we now have a white background, but the drawing is rendered in gray, when it should be red, as rendered by the old version of the library.
i have also included the complete source code file in the attached archive.
i would like someone from the design alliance to investigate this and verify that this is a problem with the newer version of dwgdirect.
attached files
hello,
has anyone from the alliance looked at this? we have paid for annual support and would like to have this issued addressed. thankyou.
i wasn't able to build your sample - 2 headers are missing, but i used odamfcapp 'bmpout' command to debug - it seems to be the same.
in the current code hummer.dwg is exported correctly. logo.dwg is exported almost correctly, both in 4bpp, and in 8bpp formats, but the red color is a bit violet (in both formats) - perhaps palette matching is somewhat broken - i'll look into it further.
vladimir
i was able to generate correct colors by inserting the following line into my application:
pctx->setplotgeneration(1);
i am satisfied with this, but it still doesn't explain why i get different results from the two different versions of the library.
|