?
Solved

how to make background transparent for animated gif

Posted on 2006-07-20
18
Medium Priority
?
1,300 Views
Last Modified: 2012-06-27
hi experts,

I want to set background as transparent for gif.
is there any to set to transparent in C#

thanks in advance.
0
Comment
Question by:avinash_takale
[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
  • 6
  • 5
  • 2
  • +1
18 Comments
 
LVL 23

Expert Comment

by:apresto
ID: 17144835
Hi avinash_takale,

this may help:

http://www.c-sharpcorner.com/Code/2003/March/ThumbnailImages.asp

Apresto
0
 
LVL 23

Expert Comment

by:apresto
ID: 17144836
0
 

Author Comment

by:avinash_takale
ID: 17144889
i tried in this way
but i can't get good answer from this.
so if any one knows this please send this answer.
its really  urgent
0
Technology Partners: 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 11

Expert Comment

by:vo1d
ID: 17145271
what do you excactly mean? do you wanna specify the color of your gif, which shall be interpreted as transparent?
do you draw that give by your own?
you will just have to load your give into a bitmap object.
then you have a method like that:
bmp.MakeTransparent(the transparent color);
0
 

Author Comment

by:avinash_takale
ID: 17147006
no i want to make back color as form color for gif.
but if we assign gif to bmp then it will not animate
so is there any solution
0
 
LVL 11

Expert Comment

by:vo1d
ID: 17147741
sure you can. here is an example:

using System;
using System.Drawing;
using System.Windows.Forms;

public class animateImage : Form
{
                     
    //Create a Bitmpap Object.
    Bitmap animatedImage = new Bitmap("SampleAnimation.gif");
    bool currentlyAnimating = false;
                     
    //This method begins the animation.
    public void AnimateImage()
    {
        if (!currentlyAnimating)
        {
                     
            //Begin the animation only once.
            ImageAnimator.Animate(animatedImage, new EventHandler(this.OnFrameChanged));
            currentlyAnimating = true;
        }
    }

    private void OnFrameChanged(object o, EventArgs e)
    {
                     
        //Force a call to the Paint event handler.
        this.Invalidate();
    }

    protected override void OnPaint(PaintEventArgs e)
    {
                     
        //Begin the animation.
        AnimateImage();
                     
        //Get the next frame ready for rendering.
        ImageAnimator.UpdateFrames();
                     
        //Draw the next frame in the animation.
        e.Graphics.DrawImage(this.animatedImage, new Point(0, 0));
    }

    public static void Main()
    {
        Application.Run(new animateImage());
    }
}
0
 
LVL 12

Expert Comment

by:topdog770
ID: 17147979
private void FormSplash_Load(object sender, EventArgs e)
{
Stream imgStream = null;
                  Assembly a = Assembly.GetExecutingAssembly();
                  // attach to stream to the resource in the manifest
                  
imgStream = a.GetManifestResourceStream "BWC.Entertainment.BasicSplash.bmp");
                  if( !(null==imgStream) )
                  {                    
                        // create a new bitmap from this stream and
                        // add it to the arraylist
                        bitmap = Bitmap.FromStream( imgStream ) as Bitmap;
                        bitmap.MakeTransparent(bitmap.GetPixel(0,0));
                        this.BackgroundImage = bitmap;
                        this.TransparencyKey = bitmap.GetPixel(0,0);
                        imgStream.Close();
                        imgStream = null;
                  }      

                  this.Visible = false;
                  Version ver = System.Reflection.Assembly.GetEntryAssembly().GetName().Version;
                  string version = ver.Major + "." + ver.Minor + "." + ver.Build + "." + ver.Revision;
                  SetMillOrderAppVersion( version );

                  this.lblVersionInfo.BringToFront();
                  this.lblStatus.BringToFront();
                  this.tbAppTitle.BringToFront();

                  this.lblStatus.Refresh();
                  this.tbAppTitle.Refresh();
                  this.lblVersionInfo.Refresh();
//                  this.Invalidate();

            }
0
 
LVL 12

Expert Comment

by:topdog770
ID: 17148002
That was more code then needed.. sorry.. the key parts are where we use the first pixel of the bitmap to determine what the transparent color of the bitmap will be..

Then we set the bitmap's transparency.

0
 
LVL 11

Accepted Solution

by:
vo1d earned 2000 total points
ID: 17148783
topdog, why do much code if you just need one line?
bmp.MakeTransparent(the transparent color);
0
 
LVL 11

Expert Comment

by:vo1d
ID: 17148794
or have i misunderstood  avinash_takale question?
0
 
LVL 11

Expert Comment

by:vo1d
ID: 17148802
btw, you asume that pixel at 0,0 is for the transparent color? what if that is not for transparent?
0
 
LVL 12

Expert Comment

by:topdog770
ID: 17148805
nope... I just posted way too much code!  Was doing some other stuff at the time.. thought it was ready to go and hit submit!

0
 
LVL 12

Expert Comment

by:topdog770
ID: 17148813
yeah, I do.

In creating the images here, I cheat and always make that first pixel represent the color I want to be transparent.
0
 
LVL 11

Expert Comment

by:vo1d
ID: 17327549
question has been answered by using the MakeTransparent method of the bitmap object. in addition, a code how to display an animated gif is also provided.
with both information, the solution is provided.
regards
0
 
LVL 12

Expert Comment

by:topdog770
ID: 17376961
Ok by me :)  I didn't realize he'd posted when I finally sent mine off
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

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

Extention Methods in C# 3.0 by Ivo Stoykov C# 3.0 offers extension methods. They allow extending existing classes without changing the class's source code or relying on inheritance. These are static methods invoked as instance method. This…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Suggested Courses

777 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