2017-07-06 8 views
3
open System.Drawing 
let bitmap = new Bitmap(16,16) 
let path = __SOURCE_DIRECTORY__ 
bitmap.Save(path+"bitmap.png") 

私は、インスタンス化されたビットマップをプロジェクトフォルダに保存するためのコードを記述しました。コードを実行したときにGeneric Errorが発生しました。エラーメッセージの全体は以下の通りです。ビットマップをXamarinに保存するときの一般的なエラー

のSystem.Exception:一般的なエラー[GDI +ステータス:GenericError] System.Drawing.GDIPlus.CheckStatus(System.Drawing.Status状態)[0x00079]中で :0 System.Drawing.Image.Saveで(System.String filename、System.Drawing.Imaging.ImageCodecInfoエンコーダ、System.Drawing.Imaging.EncoderParameters encoderParams)[0x0003d] in 0: at System.Drawing.Image.Save(System.String filename、System.Drawing.Imagingat System.Drawing.Image.Save(System.String filename)[0x00008] in:0 at(ラッパーremoting-invoke-with-check)System.Drawing.Image:Save (文字列) at $ FSI_0037.main @()[0x00006] in < 4081182357644f828a64898ac573806b>:0 System.Reflection.MonoMethod(ラッパーが管理対ネイティブ)で:InternalInvoke(System.Reflection.MonoMethod、オブジェクト、オブジェクト[]、のSystem.Exception &) System.Reflection.MonoMethod.Invokeで( System.ObjectのOBJ、System.Reflection.BindingFlags invokeAttr、System.Reflection.Binderバインダー、System.Objectの[]パラメータ、可能System.Globalization.CultureInfo培養)[0x00032]:0

はIコードをデバッグと以下のことを考え出した。

  1. ビットマップを作成するためのコードの行は、このような状況で細かい
  2. パスを働いた「/」
  3. 保存()関数は

Iと呼ばれていた前のコードは大丈夫でしたF#を学び始めたばかりで、問題を理解することはできません。誰もこれを助けることができますか?

+1

プロジェクトフォルダの絶対パスにパスを設定して問題を解決しました。なぜ私がソースディレクトリに "/"をつけたのかまだ分かりません。 –

+4

タイトルに_solved_を追加しないでください。代わりに回答を投稿し、適格者が答えを受け入れる場合。それは他人に質問が解決されたことを伝えます。ありがとうございました。 – Bugs

+2

ちなみに、 '__SOURCE_DIRECTORY__'の値は通常'/'で終わらないので、あなたのコードでファイル名を' path + "/bitmap.png" 'と指定する必要があります。あるいは、 'System.IO'名前空間から' Path.Combine'を使うのは、あなたのパスが ''/''か ''/home/username/something ''のどちらであろうと正しいことをするからです。 – rmunn

答えて

1

問題は、コードの "SOURCE_DIRECTORY"の値に由来します。 ほとんどの場合、SOURCE_DIRECTORYの値には、最後に「/」が含まれていません。コードの最後の行は、以下のコードに変更することができます。

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

私は私の場合は、SOURCE_DIRECTORYの値が "/" シングルです。私はまだ理由を理解していませんが、ビットマップセーブ機能でファイル名を持つ既存のディレクトリを指定することで、この問題を解決できます。

+1

プラットフォームの中立性を得るためにPath.Combine(パス、 "bitmap.png")を使用するとよいでしょう... – plinth

関連する問題