Try http://www.paintlib.de/pai
Main Topics
Browse All TopicsI'm new (but not to new) to writing DLL's but do know C++ (Borland CBuilder).
I need for my job an DLL that can be used as an image.
The software at the company only suplies only BMP but the pictures we're getting are JPEG. So I want a DLL (JPG2BMP.dll) that can handle a JPEG image and that the DLL gives a BMP result. (ie: image->loadfromfile ('JPG2BMP.dll c:\temp\photo.jpg') )
Is it possible to handle a DLL as an image? and how? Is there anywhere an tutorial/example?
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Try http://www.paintlib.de/pai
smitty1276,
>> but it would be beautifull when the DLL can become an image.
This makes no sense whatsoever.
I can think of no valid reason to convert an image file (like, a photograph of your pet dog) into an executable program file (like a DLL). Try to explain what you want to do in clearer terms.
-- Dan
That wasn't me... I dunno what he means either. We told him about a bunch of DLLs that will load/convert images... beyond that I have no idea what he is talking about... UNLESS...
You can add images to your project as resources, which will be compiled into your executable... is that what you mean, mddebont?
Reading your question, it sounds like exactly what I told you to do... except for the "DLL is an image" part. I don't get that.
If you want a library (DLL) that will load one format and save to another...
With your ImageMan control...
ImgMan.Picture = "whatever.jpg";
ImgMan.SaveAs = "whatever.bmp";
With DevIL it is pretty much the same thing, but in a more procedural construct.
Ok, I will try to explain what I want with a little code:
ImgMan.Picture = 'jpeg2bmp.dll?picture=c:\t
So when I get a JPEG image I want to "give" it to the DLL (or what so ever), so that the DLL can become a image of the BITMAP format.
Otherwise I have to do:
jpeg2bmp.loadjpeg('c:\temp
jpeg2bmp.savebmp('c:\temp\
ImgMan.Picture = 'c:\temp\photo.bmp';
This can also, but I was wondering if the first statement was also possible
jpeg2bmp.loadjpeg('c:\temp
jpeg2bmp.savebmp('c:\temp\
ImgMan.Picture = 'c:\temp\photo.bmp';
actually, with c++b, even this is not needed. you can just load the jpg to a TJPEGImage and convert it to bmp in memory via memory streams. furthermore, borland's TImage and alike can actually handle jpeg images directly ( you need to include the jpeg header ) so if all you want to do is to load the image and show it, then you don't even need such conversions
-- ba
You can get a FREE image library at http://www.ImageMagick.com
RJSoft
I think you are confused as to what a DLL is. A DLL is a Dynamic Link LIBRARY... it is executable CODE. An bitmap image is a string of unsigned bytes that represent RGB values for each pixel.
That's sort of like saying: "I want to convert a cassette tape to a compact disc (which is obviously very do-able), and then "give" the compact disc to the CD player so that the CD player can become a compact disc."
You understand our confusion?
If you just want to use an object type exported from a DLL to load an image, then all of the suggestions that we have given you will do exactly that.
>> but it would be beautifull when the DLL can become an image.
A little known fact about files sitting on an NTFS partition is that they have have multiple streams! Bear with me on this, and follow this example:
echo "Hello Experts" > C:\Streams.txt
more C:\Streams.txt
You see what you expect to see!
However:
echo "Contained Image" >> C:\Streams.txt:ContainedIm
more C:\Streams.txt
will only produce "Hello Experts".
But:
more C:Streams.txt:ContainedIma
yields "Contained Image".
It's almost as if there are two [disparate] files contained within the same file! And there are. And they can be treated as such.
However, most of today's applications do not support this very well.
[Note that I had to open a command prompt just to show this in operation]
I guess a dll can have a data section just like a jpeg has.
What you will have to do is find the exact format of a jpeg like you would a bitmap.
A bitmap uses a BITMAPINFOHEADER structure and I believe a RGB quad structure.
Anyway I am sure there is some posting somewhere that would give you the details.
I would try a group like (I forget something like IJG JPEG).
My guess if you where going to create a jpeg like that, that it should also have methods to read itself.
But this is where it gets a little strange. Does the dll read itself upon initiation and if so does it also know how
to display itself as well?
When the dll is created is that the time that the pixels get read and established. Or do you hard code the values
in some static memory of the dll? Will the dll read from a file?
There are also other considerations. One for example is which jpeg format to use. The lossless one I guess is supposed to
be the best.
I dont really understand the purpose of this dll/image.
What it seems like you need to me is just a dll that hands back a hbitmap handle from reading a jpeg file.
The posting I sent to you before does just that. And so many more types of image file formats it's un-believable.
http://www.imagemagick.com
With image magick you could do something like this.
Image image;
image.read(FileName); //FileName could be any of 50 different file formats for windows.
image.magick("BMP"); //variable image now contains the jpeg info in bitmap form.
RJSoft
No comment has been added lately, so it's time to clean up this TA.
I will leave the following recommendation for this question in the Cleanup topic area:
Split: smitty1276 {http:#9196932} & jkr {http:#9197132} & RJSoft {http:#9450730}
Please leave any comments here within the next seven days.
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
Tinchos
EE Cleanup Volunteer
Business Accounts
Answer for Membership
by: smitty1276Posted on 2003-08-21 at 09:58:54ID: 9196932
Well, the DLL isn't an image (in the "picture" sense), but it can be a library of functions or classes to handle and manipulate images.
load.asp?f =jpeg
net/
roducts/Im ageMan/ ima geman_acti vex_suite. asp
---------- --
First of all, if you just want to learn to read a jpeg, you can go to www.wotsit.org to read the file format info... You could probably write your own...
Here: "JPEG Compression and the JPEG file format & sourcecode [Cristian Cuturicu]"
http://www.wotsit.org/down
BUT IF YOU DON"T WANT TO WRITE YOUR OWN...
You could also use an imaging library, like DevIL... used to be called OpenIL, but he had to change it for legal reasons. It is structured much like openGL... very simple to use and very powerful.
http://openil.sourceforge.
Data-Techniques, Inc. makes a product called ImageMan, which you can buy as an OCX control suite or as a DLL. The DLL is much more expensive though. It provides a LOT of image manipulation ability for a low price (the OCXs are under $500... DLL is a lot more).
http://www.data-tech.com/P
And, of course, the industry leader is probably Lead Tools.
http://www.leadtools.com/
--------------------------
I would seriously take a look at DevIL. It should be a three line task to load a bitmap and convert it to a JPG.