Question

Image DLL

Asked by: mkdebont

I'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.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2003-08-21 at 09:43:33ID20716368
Tags

image

Topics

C++ Programming Language

,

Graphics

Participating Experts
7
Points
500
Comments
18

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

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.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

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.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

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.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. LoadFromFile in C++ Builder
    In my program i try to load several Bitmaps while the program is running. In Delphi 2.0 exists the method LoadFromFile. Using this method the following code works Image1.Picture.LoadFromFile('C:\pictures\example.bmp');. The analogous code using the -> operator instead of ...
  2. Converting BMP to JPEG
    How can I convert a BMP into a JPEG from Visual C++ ? The source is a DIB-Image captured from a video-card and I have to convert it to JPEG-Images. I found a sollution by calling a command-line-converter, but I want to do all the work in my application. There are some web-sit...
  3. convert Jpeg to Bmp
    I need to save jpeg files into bmp and vice versa. I need this converstion to save jpeg images into database as a Blob. please help Motaz
  4. Bmp to dll
    I try to make a dll for my graphic Fxs. I need to send two bmp to dll , here to have my my code for fxs and then the dll to return the fx bmp . How can I do that ? Code please .

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

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.

Join the Community

Answers

 

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.

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/download.asp?f=jpeg

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.net/

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/Products/ImageMan/imageman_activex_suite.asp

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.

 

by: jkrPosted on 2003-08-21 at 10:27:54ID: 9197132

Try http://www.paintlib.de/paintlib/ - this is a library that can handle that kind of conversion and may more.

 

by: mkdebontPosted on 2003-08-21 at 12:20:58ID: 9198036

I thought also that it wasn't possible but I made a WEB-DLL once and with that one it was possible to use the CONTENTTYPE to make it an image.

Reading an JPEG, GIF or BMP isn't the problem.
I already have an DLL that makes an conversion but it would be beautifull when the DLL can become an image.

 

by: burcarpatPosted on 2003-08-21 at 15:43:21ID: 9199353

why do you want to put it in a dll?  c++b can already read/write jpeg files and do the conversion to/from bmp.  if you want to hide the image, just rename it to image.dll or something like that

-- ba

 

by: DanRollinsPosted on 2003-08-21 at 16:14:03ID: 9199514

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

 

by: smitty1276Posted on 2003-08-21 at 20:50:40ID: 9200509

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?

 

by: smitty1276Posted on 2003-08-21 at 20:53:42ID: 9200524

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.

 

by: DanRollinsPosted on 2003-08-21 at 23:25:35ID: 9201102

Sorry smitty1276.  My last comment was meant to be addressed to mkdebont.  -- Dan

 

by: mkdebontPosted on 2003-08-22 at 01:15:52ID: 9201513

Ok, I will try to explain what I want with a little code:
ImgMan.Picture = 'jpeg2bmp.dll?picture=c:\temp\photo.jpg';

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\photo.jpg');
jpeg2bmp.savebmp('c:\temp\photo.bmp');
ImgMan.Picture = 'c:\temp\photo.bmp';

This can also, but I was wondering if the first statement was also possible

 

by: DanRollinsPosted on 2003-08-22 at 01:42:03ID: 9201628

It is likely that you can just convert the file and return the converted result directly from memory... but it would depend upon the functions that are available with the jpg2bmp object.  Where did you get that?  Is there any documentation?

-- Dan

 

by: mkdebontPosted on 2003-08-22 at 01:46:36ID: 9201643

No there is no documentation.
I just said how I would like it to have...

 

by: burcarpatPosted on 2003-08-22 at 10:00:07ID: 9204951

   jpeg2bmp.loadjpeg('c:\temp\photo.jpg');
    jpeg2bmp.savebmp('c:\temp\photo.bmp');
    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

 

by: RJSoftPosted on 2003-08-22 at 20:54:46ID: 9207814

You can get a FREE image library at http://www.ImageMagick.com

RJSoft

 

by: smitty1276Posted on 2003-08-23 at 22:44:49ID: 9211079

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.

 

by: _ys_Posted on 2003-09-29 at 03:05:44ID: 9450246

>> 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:ContainedImage
more C:\Streams.txt

will only produce "Hello Experts".

But:

more C:Streams.txt:ContainedImage

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]

 

by: RJSoftPosted on 2003-09-29 at 05:16:59ID: 9450730

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

 

by: tinchosPosted on 2004-01-25 at 19:30:35ID: 10198735

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

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...