在Xamarin中保存位图时出现一般错误

时间:2017-07-06 16:17:49

标签: f#

open System.Drawing
let bitmap = new Bitmap(16,16) 
let path =  __SOURCE_DIRECTORY__
bitmap.Save(path+"bitmap.png")

我编写了上面的代码,将实例化的Bitmap保存到项目文件夹中。我运行代码时遇到了一般错误。整堆错误消息如下所示。

  

System.Exception:通用错误[GDI +状态:GenericError]   在System.Drawing.GDIPlus.CheckStatus(System.Drawing.Status status)[0x00079] in:0   在System.Drawing.Image.Save(System.String filename,System.Drawing.Imaging.ImageCodecInfo encoder,System.Drawing.Imaging.EncoderParameters encoderParams)[0x0003d] in:0   在System.Drawing.Image.Save(System.String filename,System.Drawing.Imaging.ImageFormat格式)[0x00044] in:0   在System.Drawing.Image.Save(System.String filename)[0x00008] in:0   at(wrapper remoting-invoke-with-check)System.Drawing.Image:Save(string)   at。$ FSI_0037.main @()[0x00006] in< 4081182357644f828a64898ac573806b&gt ;:0   at(wrapper managed-to-native)System.Reflection.MonoMethod:InternalInvoke(System.Reflection.MonoMethod,object,object [],System.Exception&)   在System.Reflection.MonoMethod.Invoke(System.Object obj,System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder binder,System.Object [] parameters,System.Globalization.CultureInfo culture)[0x00032] in:0

我调试了代码并找出了以下内容。

  1. 创建Bitmap的代码行正常
  2. 这种情况下的路径是“/”
  3. 在调用Save()函数之前代码很好
  4. 我刚开始学习F#而无法弄清楚问题。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

问题来自" SOURCE_DIRECTORY "的代码。 在大多数情况下, SOURCE_DIRECTORY 的值不包含' /'在它的最后。因此最后一行代码可以更改为下面的代码。

bitmap.Save(path+"/bitmap.png") 

我的情况是, SOURCE_DIRECTORY 的值是单个" /"。虽然我还没弄清楚原因,但是通过在位图保存功能中指定一个带有文件名的现有目录,可以解决所描述的问题。