相关疑难解决方法(0)

如何在VS2012中编译不安全的代码

如何在VS2012中解决此错误"只有在使用/ unsafe进行编译时才会出现不安全的代码"?我不是从命令行编译所以我不能简单地添加/不安全.如何在VS2012中编译不安全的代码?

visual-studio visual-studio-2012

16
推荐指数
2
解决办法
2万
查看次数

c#Bitmap.Save transparancy不保存在png中

我正在尝试将具有透明性的Bitmap类保存为具有透明度的png文件.我没有运气.

位图具有透明度,它只是不保存透明度.

这就是我正在做的事情

位图设置

Bitmap ret = new Bitmap(bWidth, bHeight, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Run Code Online (Sandbox Code Playgroud)

saveing

ret.Save(filename, ImageFormat.Png);
Run Code Online (Sandbox Code Playgroud)

我也尝试用文件流保存文件,这没有任何区别.

当图像在图片框中时,透明度存在,但是当我保存时,我只得到一个黑色背景.

我真的不想使用任何第三方代码,他们找到了一种方法来做到这一点,我也想.

谢谢.

c# png image bitmap save

9
推荐指数
2
解决办法
2万
查看次数

将图像转换为位图会将背景变为黑色

我需要将图像转换为位图.

最初,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)

有人可以解释为什么背景会变黑以及我如何阻止它这样做.

谢谢

c# image bitmap

9
推荐指数
1
解决办法
2万
查看次数

在C#中,也许这是Image.SaveAdd的一个错误,谁可以帮我解决它?

我正在尝试将两个不同的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)

c# image gif

7
推荐指数
1
解决办法
2671
查看次数

标签 统计

c# ×3

image ×3

bitmap ×2

gif ×1

png ×1

save ×1

visual-studio ×1

visual-studio-2012 ×1