时间:2010-07-26 17:46:33

标签: c# wpf jpeg

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

JPEG压缩算法非常适合您捕获的图像类型。它适用于照片,在含有细纹的图像上表现不佳。压缩产生的轻微伪影使得正确扫描条形码变得更加困难。

您没有看到面巾纸盒,因为您正在编写原始图像字节。您需要使用图像编码器。我建议你使用PngBitmapEncoder类。 GifBitmapEncoder也应该工作,因为你不需要很多颜色,它会产生较小的文件。显示如何使用编码器的代码段为available here

答案 2 :(得分:0)

答案 3 :(得分:0)

我使用jpeg解码器来解决问题。

  private void SetBitmap(byte[] image, int width, int height, int dpi)
  {
    MainWindow.Instance.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate()
    {
        BMemoryStream ms = new MemoryStream(image);
        JpegBitmapDecoder decoder = new JpegBitmapDecoder(ms, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
        BitmapSource bitmapSource = decoder.Frames[0];               

        HwModeScreen.BarcodeImageCanvas.Children.Clear();
        Image myImage = new Image();
        myImage.Width = HwModeScreen.BarcodeImageCanvas.ActualWidth;
        myImage.Height = HwModeScreen.BarcodeImageCanvas.ActualHeight;
        myImage.Stretch = Stretch.Fill;
        myImage.Source = bitmapSource;
        HwModeScreen.BarcodeImageCanvas.Children.Add(myImage);
    });