c++ - Working with JPEGs
- Erik Weber (17/17) Nov 16 2011 I am able to compile and pack bitmaps as resources into my
- Bertel Brander (6/18) Nov 16 2011 You could check out jdraw here:
- Nick Hofstetter (19/19) Nov 16 2011 I have not tried to do this just using Windows Functions. I have downloa...
- Erik Weber (5/5) Nov 18 2011 Thank you both. Yeah I've been trying to keep it pure GDI, no MFC,
I am able to compile and pack bitmaps as resources into my executables with rcc and dmc and then load them with LoadBitmap and display them with standard GDI BitBlt. I am working with large photographs and of course the equivalent JPEGs are as much as 10 times more compact. So I would like to learn how to do the same things with an image format such as JPEG. Can anyone help me out here? 1) How do I declare a JPEG image as a resource that Digital Mars rcc (not MS rc) will compile? 2) How do I find and load the JPEG resource? 3) How do I translate the JPEG image data into a format that GDI will render (such as a DIB into an offscreen DC)? If this is complex and someone can provide a complete (C/C++) example, I'm even willing to pay you a few bucks via money order as a consulting fee. Thanks, Erik
Nov 16 2011
Den 16-11-2011 14:10, Erik Weber skrev:I am able to compile and pack bitmaps as resources into my executables with rcc and dmc and then load them with LoadBitmap and display them with standard GDI BitBlt. I am working with large photographs and of course the equivalent JPEGs are as much as 10 times more compact. So I would like to learn how to do the same things with an image format such as JPEG. Can anyone help me out here? 1) How do I declare a JPEG image as a resource that Digital Mars rcc (not MS rc) will compile? 2) How do I find and load the JPEG resource? 3) How do I translate the JPEG image data into a format that GDI will render (such as a DIB into an offscreen DC)?You could check out jdraw here: http://damb.dk/graphics.php It can do the above, and a few things more Regards Bertel
Nov 16 2011
I have not tried to do this just using Windows Functions. I have downloaded some freeware that converts the jpeg to a bitmap as my image requirements are complex, but if you just want to display a jpeg, you will need to do something like this: Define the image to in the RC file as 'RCDATA' image RCDATA "image.jpg" You can then access the image using: HANDLE hResource; BYTE *lpText; int len; hResource = LoadResource(hInst, FindResource(hInst, "image", RT_RCDATA)); lpText = LockResource(hResource); len = SizeofResource(hInst, FindResource(hInst, "image", RT_RCDATA)); So lpText is pointing to the JPEG data and len is the length To render it, you will need to convert it to a bitmap. So you will need to allocate some memory the size of the image plus the size of the BITMAPINFOHEADER. In the BITMAPINFOHEADER set the biCompression to BI_JPEG
Nov 16 2011
Thank you both. Yeah I've been trying to keep it pure GDI, no MFC, no GDI+ and so far so good. Now I've got lots more to chew on. I will post again when I make some progress. Thanks, Erik
Nov 18 2011