C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: c# wpf image save


(過去ログ 107 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■63763 / inTopicNo.1)  c# wpf image save
  
□投稿者/ masa (1回)-(2012/10/06(Sat) 16:30:35)

分類:[C#] 

c#のwpfでボタンを押したときにimageの画像を保存するプログラムを作りたいのですが、エラーが出てしまいます。どうしたらうまく作動するでしょうか?教えてください。

以下ソースコード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace yabai
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            RenderTargetBitmap bitmap = new RenderTargetBitmap((int)image1.ActualWidth, (int)image1.ActualHeight, 96, 96, PixelFormats.Pbgra32);
            bitmap.Render(image1);

            JpegBitmapEncoder encoder = new JpegBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(bitmap));
            var dlg = new Microsoft.Win32.SaveFileDialog();
            dlg.Filter = "JPEG(*.jpg)|*.jpg";
           
        }
    }
}

エラーの際にでる文章
'System.ArgumentOutOfRangeException' のハンドルされていない例外が PresentationCore.dll で発生しました。

よろしくお願いします。

引用返信 編集キー/
■63764 / inTopicNo.2)  Re[1]: c# wpf image save
□投稿者/ 真白けい (1回)-(2012/10/06(Sat) 17:19:47)
> エラーの際にでる文章
> 'System.ArgumentOutOfRangeException' のハンドルされていない例外が PresentationCore.dll で発生しました。


イメージに画像は入っていますか?
確認してみてください。

引用返信 編集キー/
■63766 / inTopicNo.3)  Re[2]: c# wpf image save
□投稿者/ Hongliang (1回)-(2012/10/07(Sun) 17:03:03)
例外を書くときは、どこで発生しているのか、および例外の具体的なメッセージも書くようにしてください。
例えばActualWidthが0の時(image1が非表示になってる場合など)であれば以下のような感じになるはずです。
> ハンドルされていない例外: System.ArgumentOutOfRangeException: パラメーター値は、0 より大きい必要があります。
パラメーター名: pixelWidth
この後ろにスタックトレースがずらずら出ますが、そちらは自分で書いたコードのどこで発生したかが分かるぐらいまで書くと良いでしょう。
> 場所 System.Windows.Media.Imaging.RenderTargetBitmap..ctor(Int32 pixelWidth, Int32 pixelHeight, Double dpiX, Double dpiY, PixelFormat pixelFormat)
ActualWidthが0のときはこの1行で、new RenderTargetBitmapのところでエラーが出たんだな、が分かります。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -