我试图将.tif中的图像转换为.jpg,并且出现错误:将.tif转换为.jpg时,出现错误“GDI +中发生了一般错误”
GDI +发生一般性错误。
我不知道这个问题是什么,我很难在网上找到解决方案。有人可以帮忙吗?
错误发生在bmp.Save(jpegPaths[frame], ImageFormat.Jpeg);
public static void ConvertTiffToJpeg(string tiffFile, string destinationDirectory)
{
using (Image imageFile = Image.FromFile(tiffFile))
{
FrameDimension frameDimensions = new FrameDimension(
imageFile.FrameDimensionsList[0]);
// Gets the number of pages from the tiff image (if multipage)
int frameNum = imageFile.GetFrameCount(frameDimensions);
string[] jpegPaths = new string[frameNum];
for (int frame = 0; frame < frameNum; frame++)
{
// Selects one frame at a time and save as jpeg.
imageFile.SelectActiveFrame(frameDimensions, frame);
using (Bitmap bmp = new Bitmap(imageFile))
{
jpegPaths[frame] = String.Format("{0}\\{1}.jpg",
//Path.GetDirectoryName(tiffFile),
destinationDirectory,
Path.GetFileNameWithoutExtension(tiffFile),
frame);
bmp.Save(jpegPaths[frame], ImageFormat.Jpeg);
}
}
}
}
谢谢丹。我想我找到了问题。 String.Format生成“C:\\ 00346A23.jpg”...注意到两个反斜杠。我不知道为什么会发生这种情况。我想将它保存在C盘中。 –
好吧,我通过去掉反斜杠来修复它。但我仍然遇到同样的错误。这是我现在拥有的:jpegPaths [frame] = String.Format(“{0} {1} .jpg”, destinationDirectory, Path.GetFileNameWithoutExtension(tiffFile), frame); –
该输出目录是否存在?你只是想保存到不同的目录。顺便说一句,你确实需要两个反斜杠,因为它们会变成一个反斜杠......首先尝试用硬编码路径测试一个你__know__存在的目录,然后从那里建立。或者在尝试保存之前在每个路径上调用Directory.CreateDirectory。 –