Solved

merging 2 images

Posted on 2002-07-16
7
296 Views
Last Modified: 2010-03-31
I have a background image and a foreground image.

I want to overlay the foreground image on top of the background image so that I can see parts of the background below.  I have drawn the foreground image with black where I want it to be transparent.  I need some code to show me how to merge the 2 images.

Thanks,
Mike.
0
Comment
Question by:MDarling
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
7 Comments
 
LVL 2

Expert Comment

by:s_lavie
ID: 7157138
Can you send the code of what you did, so we'll speak the same "language"?
0
 
LVL 3

Author Comment

by:MDarling
ID: 7157145
I haven't got any code yet.  Just need to load an image, load another, then overlay one on top of the other with the top one being transparent wherever it is black.
0
 
LVL 2

Expert Comment

by:s_lavie
ID: 7157170
Can the background image be a transparent gif?
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 3

Author Comment

by:MDarling
ID: 7157191
No the background image is totally opaque.
The foreground image is partially transparent.

All my images are png format, they are also in high colour format, which is beyound GIF capabilities.
0
 
LVL 16

Accepted Solution

by:
imladris earned 200 total points
ID: 7157271
One solution would be to process the foreground image as it is loaded, turning all the black pixels to transparent ones. To do this write an imagefilter something like:

class TransFilter extends RGBImageFilter
{     TransFilter()
     {     canFilterIndexColorModel=true;
          return;
     }

        // if rgb is black (red, green and blue components
        // all off) return a transparent pixel
        // (alpha component (top byte) off)

     public int filterRGB(int x,int y,int rgb)
     {     int i;

                return((rgb&0xffffff)==0?0:rgb);
     }
}


You use an imagefilter with something like:

Image buf=getImage(name);  // get the image
ImageFilter flt=new TransFilter();
ImageProducer p=new FilteredImageSource(buf.getSource(),flt);
Image pi=window.createImage(p);


Out of curiosity, what software are you using to load png images? I have done png's in the past, but the libraries I found all turned out to have substantive problems, though that was some years ago.
0
 
LVL 3

Author Comment

by:MDarling
ID: 7157325
Hi imladris

Im just using loadImage from the Java SDK.  Seems to work ok.  

I'll check out your code and get back to you.

Thanks,
Mike.
0
 
LVL 3

Author Comment

by:MDarling
ID: 7158156
Thanks - just the job!

Regards,
Mike.
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question