如何连接/“粘合”/组合多个位图到一个?

时间:2015-10-09 03:01:00

标签: c# wpf

我有很多光栅文件,并且知道它们在最终图像中的比例。这些文件的大小和分辨率完全不同(很多非常大)。

如何将它们设为位图文件?

最终位图的分辨率必须等于传入的位图的最小分辨率。

我试图这样做,但我无法得到我想要的东西:

    for (int i = 0; i < temp.Length; i++)
        {
            Point location = new Point(temp[i].Propx* width * 300/ 25.4, temp[i].Propy*height* 300/ 25.4);
            Size size = new Size(temp[i].Propwidth*width * 300/ 25.4, temp[i].Propheight*300* height/ 25.4);
            Rect rect = new Rect(location, size);
            drawingContext.DrawImage(tempBS[i], rect);
        }
        drawingContext.Close();
        Size finalSize = new Size(300*width/25.4, 300*height/25.4);
        var bmp = new RenderTargetBitmap(
                         (int) finalSize.Width,(int) finalSize.Height,
                          300d, 300d, 
                          PixelFormats.Pbgra32);
       bmp.Render(drawingVisual);

       using (var fs = File.OpenWrite("D:\\1.jpg"))
        {
            var encoder = new JpegBitmapEncoder() { QualityLevel = 100 };
            encoder.Frames.Add(BitmapFrame.Create(bmp));
            encoder.Save(fs);
        }

其中宽度和高度是最终尺寸位图,单位为mm。 Propwidth - 最终位图的百分比(0到1)。但我只能看到部分位图。

我将向我想要学习的简单例子进行解释。假设我们有两个位图文件:

  1. 3000至4000像素,分辨率为250 dpi。它的宽度是左侧最终图像的0.5倍。

  2. 1000 x 1000像素,分辨率为350 dpi。右侧生成图像的宽度为0.5。

  3. 有必要获得一个位图,而不是更小的已知尺寸,单位为mm(或英寸,让6х16英寸),并具有最高的分辨率和质量。最小结果分辨率为100dpi。

    对于此示例,结果应为:size2000х750,resolutoin 100dpi

0 个答案:

没有答案