繁体   English   中英

SaveAdd引发“ GDI +中发生一般错误”

[英]SaveAdd throwing “A generic error occurred in GDI+”

我正在尝试按照以下链接进行操作:

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

但是,当我进入SaveAdd方法时,我得到的是“ GDI +中发生一般错误”

上面链接中的解决方案确实显示了如何初始化bitmap1,bitmap2或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方法感到窒息。

有任何想法吗?

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

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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM