سوال راجب ساخت یک عکس بصورت GIF در .net

amirlol

Well-Known Member
سلام !

این همه سوال از شما ! یه بارم من سوال بپرسم !

کسی می دونه به چه صورت در >net میشه یک فایل عکس GIF درست کرد که پشت زمینش TRANSPARENT باشه و حاوی یه نوشته مثل HELLO WORLD باشه !!

من هر کاری می کنم ! سیاه میشه
 

shirini_forush

Well-Known Member
اون سیاه بودن به خاطر شیء بیت مپیه که ساخته میشه. باید pallete رو دستی بهش بدید.
مثلا:
PHP:
private  void PaintPanel_Click(object  sender, System.EventArgs e)
{
	if(cp!=null)
	{
		Bitmap bm=new Bitmap(_gifImage.Width,_gifImage.Height,PixelFormat.Format8bppIndexed);
		ColorPalette ncp=bm.Palette;
		int n=0;
		foreach(Color c in cp.Entries)
			ncp.Entries[n++]=Color.FromArgb(255,c);
		ncp.Entries[CurrentEntry]=Color.FromArgb(0,cp.Entries[CurrentEntry]);
		bm.Palette=ncp;
		BitmapData src=((Bitmap)_gifImage).LockBits(new Rectangle(0,0,_gifImage.Width,_gifImage.Height),ImageLockMode.ReadOnly,_gifImage.PixelFormat);
		BitmapData dst=bm.LockBits(new Rectangle(0,0,bm.Width,bm.Height),ImageLockMode.WriteOnly,bm.PixelFormat);
		unsafe
		{
			for(int y=0;y<_gifImage.Height;y++)
				for(int x=0;x<_gifImage.Width;x++)
				{
					((byte *)dst.Scan0.ToPointer())[(dst.Stride*y)+x]=((byte *)src.Scan0.ToPointer())[(src.Stride*y)+x];
				}
		}
		((Bitmap)_gifImage).UnlockBits(src);
		bm.UnlockBits(dst);
		this.pictureBox1.Image=null;
		_gifImage.Dispose();
		_gifImage=bm;
		cp=_gifImage.Palette;
		this.pictureBox1.Image=_gifImage;
	}
}
 
  • Like
Reactions: MDP

جدیدترین ارسال ها

بالا