1

実行時に単純な tiff イメージを生成しようとしています。この画像は、白い背景とリモート サーバーからダウンロードした画像で構成されています。

その目標を達成するために私が書いたコードは次のとおりです。

        const string url = "http://localhost/barcode.gif";

        var size = new Size(794, 1123);
        var drawingVisual = new DrawingVisual();

        using (var drawingContext = drawingVisual.RenderOpen())
        {
            drawingContext.DrawRectangle(new SolidColorBrush(Colors.White), null, new Rect(size));

            var image = new BitmapImage(new Uri(url));
            drawingContext.DrawImage(image, new Rect(0, 0, 180, 120));
        }

        var targetBitmap = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96, 96, PixelFormats.Default);
        targetBitmap.Render(drawingVisual);

        var convertedBitmap = new FormatConvertedBitmap(targetBitmap, PixelFormats.BlackWhite, null, 0);

        var encoder = new TiffBitmapEncoder();
        encoder.Frames.Add(BitmapFrame.Create(convertedBitmap));

        using (var fs = new FileStream("out.tif", FileMode.Create))
        {
            encoder.Save(fs);
        }

コードが機能し、「out.tif」ファイルが生成されます。ただし、出力ファイルの背景は白いだけで、リモート サーバーから画像を受信して​​いません。

何が問題になる可能性がありますか? 次のコードをさまざまな方法で試しましたが、毎回うまくいきません。

4

1 に答える 1

0

FormatConvertedBitmap クラスに関するこの読み物を見つけました。多分それを試してみてください

        FormatConvertedBitmap newFormatedBitmapSource = new FormatConvertedBitmap();

        // BitmapSource objects like FormatConvertedBitmap can only have their properties
        // changed within a BeginInit/EndInit block.
        newFormatedBitmapSource.BeginInit();

        // Use the BitmapSource object defined above as the source for this new 
        // BitmapSource (chain the BitmapSource objects together).
        newFormatedBitmapSource.Source = targetBitmap;

        // Set the new format to BlackWhite.
        newFormatedBitmapSource.DestinationFormat = PixelFormats.BlackWhite;
        newFormatedBitmapSource.EndInit();
于 2012-05-05T02:07:27.810 に答える