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方法。
有什么想法吗?
我使用的代码如下。非常接近上面的内容,但我将所有内容都添加到了位图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();