- ベストアンサー
C#で開いたファイルを上書きするには
C#で開いたファイルを上書きするには どのようにしたらいいのでしょうか? 開いたまま上書きすると言うことが出来るのでしょうか? 何か上書き可能な関数があるのでしょうか? よろしくお願い致します
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>pictureBox1.Image.Save(xxxx,xxx); >でも効くのでしょうか? Image.Save(Stream, ImageFormat) を使います。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemDrawingImageClassSaveTopic2.asp File.Open(String, FileMode, FileAccess) で返ってくるのはFileStramなので、 Image.Save(Stream, ImageFormat) の第1引数に渡せます。 「「未確認」」 // 開く FileStream fs = File.Open("FileName", FileMode.Open, FileAccess.ReadWrite); // 読み込み PictureBox.Image = System.Drawing.Image.FromStream(fs); // 巻き戻し fs.Seek(0, SeekOrigin.Begin); // 編集 ・・・ // 書き出し PictureBox.Image.Save(fs, ImageFormat.Bmp); // 閉じる fs.Close(); ↑課題:元のサイズより小さくなったときは?
その他の回答 (1)
- はなおか じった(@Jitta)
- ベストアンサー率42% (69/161)
こんにちは。 リードライトモードで開いて読み込んだ後、メモリを編集し、ファイルの先頭をseekして、書き出します。編集後の方が短い場合は、後ろをヌルで埋めてから書き出します。 ファイルを読み込んだ後いったん閉じて、trancateで開き直すという手もあります。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemIOFileClassOpenTopic2.asp http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemIOFileStreamClassSeekTopic.asp
お礼
ありがとうございます すいませんが pictureBox1.Image.Save(xxxx,xxx); でも効くのでしょうか? イメージを読み込みそれを編集し保存したいのですが 普通にセーブ出来ると思ったらつまずいてしまいました よろしくお願い致します
お礼
ありがとうございます すごいです 最近始めたばかりでパニックでした 本当にありがとうございます がんばります