问题描述
我是将一系列图片合成GIF动画,但这样合成的动画大小很大,所以我准备压缩一下,我的思路是判断相邻两帧图片的差异,不同的才显示,相同的部分就给抠掉以达到压缩的目的,现在就是抠掉这一步没实现if(rects.Count!=0){Bitmapres=newBitmap(newImage.Width,newImage.Height,System.Drawing.Imaging.PixelFormat.Format32bppArgb);using(Graphicsg=Graphics.FromImage(res)){//g.Clear(Color.FromArgb(0,0,0,0));//.Transparent);for(vari=0;i<rects.Count;i++){g.DrawImage(newImage,rects[i],rects[i].X,rects[i].Y,rects[i].Width,rects[i].Height,GraphicsUnit.Pixel,null);}}returnres;}
解决方案
解决方案二:
自己顶一下,怎么没人回答呢?
解决方案三:
GIF本身就是压缩的格式,在说GIF本身的文件要求每帧必须有完整的数据,你求了两帧的差这中数据有往那里存放呢。
解决方案四:
引用2楼laviewpbt的回复:
GIF本身就是压缩的格式,在说GIF本身的文件要求每帧必须有完整的数据,你求了两帧的差这中数据有往那里存放呢。
我是想把相同的抠掉,这一帧只显示不同的部分,相当于这帧当做一个透明的图片来处理,之前当背景
解决方案五:
www.codeproject.com有楼主需要的呢直接用GIF关键字搜呢
时间: 2024-12-02 15:13:07