SaveAdd投掷";在GDI+“中发生了一个一般性错误;

本文关键字:发生了 一般性 一个 错误 投掷 quot GDI+ SaveAdd | 更新日期: 2023-09-27 18:20:05

我正试图按照以下链接中的说明进行操作:

使用c#.net 合并两个tiff图像

然而,当我使用SaveAdd方法时,我会得到"GDI+中发生了一个通用错误"

上面链接中的解决方案确实显示了位图1、位图2或newFileName是如何初始化的,所以我认为这与此有关,但我不确定。。。

这是我的代码:

    string filePathA = "C:''Users''me''Documents''Projects''TestTifMerge''Samples''00000516.tif";
     string filePathB = "C:''Users''me''Documents''Projects''TestTifMerge''Samples''11164_6018188.tif";
     string newFileName = "C:''Users''me''Documents''Projects''TestTifMerge''Samples''combined.tif";

     Bitmap bitmap1;
     Bitmap bitmap2;

     bitmap1 = (Bitmap) Image.FromFile( filePathA );
     bitmap2 = (Bitmap) Image.FromFile( filePathB );

     ImageCodecInfo tiff = null;
     foreach( ImageCodecInfo codec in ImageCodecInfo.GetImageEncoders() ) {
        if( codec.MimeType == "image/tiff" ) {
           tiff = codec;
           break;
        }
     }
     Encoder encoder = Encoder.SaveFlag;
     EncoderParameters parameters = new EncoderParameters( 1 );
     parameters.Param[ 0 ] = new EncoderParameter( encoder, ( long ) EncoderValue.MultiFrame );
     bitmap1.Save( newFileName, tiff, parameters );
     //Bitmap bitmapTemp = new Bitmap( bitmap1 );
     parameters.Param[ 0 ] = new EncoderParameter( encoder, ( long ) EncoderValue.FrameDimensionPage );
     bitmap2.SaveAdd(  parameters );

正如你所看到的,我使用的代码与链接中建议的解决方案几乎相同。该代码似乎通过了Save方法,但阻塞了SaveAdd方法。

有什么想法吗?

SaveAdd投掷";在GDI+“中发生了一个一般性错误;

我使用的代码如下。非常接近上面的内容,但我将所有内容都添加到了位图1中。

foreach( ImageCodecInfo codec in ImageCodecInfo.GetImageEncoders() ) {
                      if( codec.MimeType == "image/tiff" ) {
                         tiff = codec;
                         break;
                      }
                   }
                   System.Drawing.Imaging.Encoder encoder = System.Drawing.Imaging.Encoder.SaveFlag;
                   EncoderParameters parameters = new EncoderParameters( 1 );
                   parameters.Param[ 0 ] = new EncoderParameter( encoder, ( long ) EncoderValue.MultiFrame );
                   bitmap1.Save( newFileName, tiff, parameters );
                   parameters.Param[ 0 ] = new EncoderParameter( encoder, ( long ) EncoderValue.FrameDimensionPage );
                   bitmap1.SaveAdd( bitmap2, parameters );
                   bitmap1.Dispose();
                   bitmap2.Dispose();
相关文章: