Solved

how to make background transparent for animated gif

Posted on 2006-07-20
18
1,186 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
  • 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
 
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
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 
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 500 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

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Voice recognition ASP or ASP.NET or JavaScript 2 45
import issue in bit values 3 44
Data Saving(2) 2 29
fomat Json objects 6 20
Introduction This article series is supposed to shed some light on the use of IDisposable and objects that inherit from it. In essence, a more apt title for this article would be: using (IDisposable) {}. I’m just not sure how many people would ge…
We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

743 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now