如何在VS2012中解决此错误"只有在使用/ unsafe进行编译时才会出现不安全的代码"?我不是从命令行编译所以我不能简单地添加/不安全.如何在VS2012中编译不安全的代码?
我正在尝试将具有透明性的Bitmap类保存为具有透明度的png文件.我没有运气.
这就是我正在做的事情
Bitmap ret = new Bitmap(bWidth, bHeight, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Run Code Online (Sandbox Code Playgroud)
ret.Save(filename, ImageFormat.Png);
Run Code Online (Sandbox Code Playgroud)
我也尝试用文件流保存文件,这没有任何区别.
当图像在图片框中时,透明度存在,但是当我保存时,我只得到一个黑色背景.
我真的不想使用任何第三方代码,他们找到了一种方法来做到这一点,我也想.
谢谢.
我需要将图像转换为位图.
最初,gif以字节形式读入,然后转换为Image.
但是,当我尝试将图像转换为位图时,我的图片框中显示的图形在以前是白色时具有黑色背景.
这是代码:
var image = (System.Drawing.Image)value;
// Winforms Image we want to get the WPF Image from...
var bitmap = new System.Windows.Media.Imaging.BitmapImage();
bitmap.BeginInit();
MemoryStream memoryStream = new MemoryStream();
// Save to a memory stream...
image.Save(memoryStream, ImageFormat.Bmp);
// Rewind the stream...
memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
bitmap.StreamSource = memoryStream;
bitmap.EndInit();
return bitmap;
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么背景会变黑以及我如何阻止它这样做.
谢谢
我正在尝试将两个不同的gif文件合并到一个文件中.
首先,我学到了很多关于gif格式的知识.我知道延迟时间值是在图形控制扩展中设置的,这是一个gif文件块.
我保存了第一个gif并设置了FrameDelay值,代码如下:
ImageCodecInfo codeInfo = GetEncoder(ImageFormat.Gif);
System.Drawing.Imaging.Encoder saveEncoder = System.Drawing.Imaging.Encoder.SaveFlag;
EncoderParameters parameters = new EncoderParameters(1);
parameters.Param[0] = new EncoderParameter(saveEncoder, (long)EncoderValue.MultiFrame);
PropertyItem PropertyTagFrameDelay = img1.GetPropertyItem(0x5100);
PropertyTagFrameDelay.Value = new byte[] { 0x96, 0x00 };// this is the delay value 0x0096, means 1.5 second
img1.SetPropertyItem(PropertyTagFrameDelay);
PropertyItem LoopCount = img1.GetPropertyItem(0x5101);
LoopCount.Value = new byte[] { 0x00, 0x00 };// this means the gif loops endlessly
img1.SetPropertyItem(LoopCount);
img1.Save(@"c:\ddd.gif", codeInfo, parameters);
Run Code Online (Sandbox Code Playgroud)
然后我尝试添加另一个图像作为第二帧.
parameters = new EncoderParameters(1);
parameters.Param[0] = new EncoderParameter(saveEncoder, (long)EncoderValue.FrameDimensionTime);
PropertyTagFrameDelay = img2.GetPropertyItem(0x5100);
PropertyTagFrameDelay.Value = …Run Code Online (Sandbox Code Playgroud)