C# 图像质量不好

C# 图像质量不好,c#,libtiff,libtiff.net,C#,Libtiff,Libtiff.net,我们正在使用BitMiracle ReadRGBATile将多页tiff文件的平铺转换为位图。我们有以下问题1。图像质量不好(与在Autocad中打开的相同图像相比)。2.添加到图像右侧和底部填充的黑色像素(看起来像TILEWIDTH-IMAGEWIDTH和IMAGELENGTH-TILELENGTH)。谢谢你的帮助 以下内容解决了我们的问题 int iWidth = tiffInput.GetField(TiffTag.IMAGEWIDTH)[0].ToInt(); int iHeight

我们正在使用BitMiracle ReadRGBATile将多页tiff文件的平铺转换为位图。我们有以下问题1。图像质量不好(与在Autocad中打开的相同图像相比)。2.添加到图像右侧和底部填充的黑色像素(看起来像TILEWIDTH-IMAGEWIDTH和IMAGELENGTH-TILELENGTH)。谢谢你的帮助


以下内容解决了我们的问题

int iWidth = tiffInput.GetField(TiffTag.IMAGEWIDTH)[0].ToInt();
int iHeight = tiffInput.GetField(TiffTag.IMAGELENGTH)[0].ToInt();

int iTile_Width = inImage.GetField(TiffTag.TILEWIDTH)[0].ToInt();
int iTile_Height = inImage.GetField(TiffTag.TILELENGTH)[0].ToInt();

for (int row = 0; row < iHeight; row += iTile_Height)
{
      for (int col = 0; col < iWidth; col += iTile_Width)
      {
          // Read the tile into an RGBA array
          if (inImage.ReadRGBATile(col, row, raster))
          {
              Bitmap bmp = TiffDataToImage(raster, iTile_Width, iTile_Height);
              //Collect all these images

          }
      }
}
int-iWidth=tiffInput.GetField(TiffTag.IMAGEWIDTH)[0].ToInt();
int iHeight=tiffInput.GetField(TiffTag.IMAGELENGTH)[0].ToInt();
int iTile_Width=inImage.GetField(TiffTag.TILEWIDTH)[0].ToInt();
int iTile_Height=inImage.GetField(TiffTag.tillelength)[0].ToInt();
对于(int row=0;row

将图像合并为一个图像。

以下内容解决了我们的问题

int iWidth = tiffInput.GetField(TiffTag.IMAGEWIDTH)[0].ToInt();
int iHeight = tiffInput.GetField(TiffTag.IMAGELENGTH)[0].ToInt();

int iTile_Width = inImage.GetField(TiffTag.TILEWIDTH)[0].ToInt();
int iTile_Height = inImage.GetField(TiffTag.TILELENGTH)[0].ToInt();

for (int row = 0; row < iHeight; row += iTile_Height)
{
      for (int col = 0; col < iWidth; col += iTile_Width)
      {
          // Read the tile into an RGBA array
          if (inImage.ReadRGBATile(col, row, raster))
          {
              Bitmap bmp = TiffDataToImage(raster, iTile_Width, iTile_Height);
              //Collect all these images

          }
      }
}
int-iWidth=tiffInput.GetField(TiffTag.IMAGEWIDTH)[0].ToInt();
int iHeight=tiffInput.GetField(TiffTag.IMAGELENGTH)[0].ToInt();
int iTile_Width=inImage.GetField(TiffTag.TILEWIDTH)[0].ToInt();
int iTile_Height=inImage.GetField(TiffTag.tillelength)[0].ToInt();
对于(int row=0;row

将图像合并为一个图像。

您可以共享该文件吗?或者至少是一个对比截图?至于黑色像素——很可能是预期的行为。博布罗夫斯基:非常感谢您的快速响应;Tiff图像的屏幕截图附加AutoCad图像。什么是预期行为?如何删除或裁剪这些黑色像素?对我来说,它看起来像两个不同的图像。是否确定TIFF中只有一个图像(页面、目录)?它是多页面的,我们正在打开第一个页面,autocad也在打开一个页面。如果文件是金字塔TIFF,则文件中可能有相同图像的不同版本。你确定不是这样吗?鉴于两幅图像的视觉差异,我几乎可以肯定这一点。您也可能在LibTiff.Net中发现了一个bug,但除非您的TIFF使用了一些罕见的编码参数组合,否则这是不可能的。无论如何,如果没有一些代码和测试图像,这里就没有什么可以做的了。你能分享这个文件吗?或者至少是一个对比截图?至于黑色像素——很可能是预期的行为。博布罗夫斯基:非常感谢您的快速响应;Tiff图像的屏幕截图附加AutoCad图像。什么是预期行为?如何删除或裁剪这些黑色像素?对我来说,它看起来像两个不同的图像。是否确定TIFF中只有一个图像(页面、目录)?它是多页面的,我们正在打开第一个页面,autocad也在打开一个页面。如果文件是金字塔TIFF,则文件中可能有相同图像的不同版本。你确定不是这样吗?鉴于两幅图像的视觉差异,我几乎可以肯定这一点。您也可能在LibTiff.Net中发现了一个bug,但除非您的TIFF使用了一些罕见的编码参数组合,否则这是不可能的。无论如何,如果没有一些代码和测试图像,这里就没有多少其他的事情可以做了。