1

コード内の行 wb.SaveJpeg でエラーが生成されます。 .Imaging.WriteableBitmap' が見つかりました

参照として含めました:PresentationCore、PresentaionFramework、System.Windows.Forms、WindowsBase。

BitmapImage image = CaptureImageFromClipBoard();
WriteableBitmap wb = new WriteableBitmap(image);

using (var isf = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (var fs = isf.CreateFile(path + "\\" + filename + ".jpg"))
    {   
        wb.SaveJpeg(fs, wb.PixelWidth, wb.PixelHeight, 10, 100);
    }
}

メソッド CaptureImageFromClipBoard は次のとおりです。

static public BitmapImage CaptureImageFromClipBoard()
{
    var img = new System.Windows.Controls.Image();
    var imgsrc = Clipboard.GetImage();
    img.Source = new FormatConvertedBitmap(imgsrc, PixelFormats.Bgr32, null, 0);

    JpegBitmapEncoder encoder = new JpegBitmapEncoder();
    MemoryStream memoryStream = new MemoryStream();
    BitmapImage bImg = new BitmapImage();

    encoder.Frames.Add(BitmapFrame.Create(imgsrc));
    encoder.Save(memoryStream);

    bImg.BeginInit();
    bImg.StreamSource = new MemoryStream(memoryStream.ToArray());
    bImg.EndInit();

    memoryStream.Close();

    return bImg;
}
4

1 に答える 1

0

私はこのようにすることを提案します-注:テストされておらず、記憶と元の投稿から入力されました...

static public void SaveCapturedImageFromClipBoard(Stream target)
{
    var img = new System.Windows.Controls.Image();
    var imgsrc = Clipboard.GetImage();
    img.Source = new FormatConvertedBitmap(imgsrc, PixelFormats.Bgr32, null, 0);

    JpegBitmapEncoder encoder = new JpegBitmapEncoder();

    encoder.Frames.Add(BitmapFrame.Create(imgsrc));
    encoder.Save(target);
}

using (var isf = IsolatedStorageFile.GetUserStoreForApplication())
{
     using (var fs = isf.CreateFile(path + "\\" + filename + ".jpg"))
     {
         SaveCapturedImageFromClipBoard(fs);
     }
}
于 2013-03-14T01:59:12.300 に答える