我正在通过OCR实现从图像中读取文本。它只支持TIFF格式的图像。将不同的图片格式(jpg,gif,png等)转换为TIFF格式
因此,我需要将其他格式转换为TIFF格式。可以做到吗?请帮助
提供一些参考。
我正在通过OCR实现从图像中读取文本。它只支持TIFF格式的图像。将不同的图片格式(jpg,gif,png等)转换为TIFF格式
因此,我需要将其他格式转换为TIFF格式。可以做到吗?请帮助
提供一些参考。
我发现了一个更好的答案在下面的链接:
这不仅转换JPG到TIFF格式的,但也允许其他图片格式为TIFF转换。这确实解决了我的问题。但是如果任何人都有其他想法,欢迎他们分享他们的宝贵意见。
如果您在.NET中创建了一个Image
对象,则可以将其保存为TIFF。这是您可以选择的众多ImageFormat选项之一。
例子:
var png = Image.FromFile("some.png");
png.Save("a.tiff", ImageFormat.Tiff);
你需要包括System.Drawing
组件项目。该程序集将为您提供很多图像处理功能。希望有所帮助。
我用jpg,bmp,png和gif测试了这个。适用于tiff的单页和多页创作。将它传递给文件的完整路径名。希望它能帮助别人。 (从MSDN提取)
public static string[] ConvertJpegToTiff(string[] fileNames, bool isMultipage)
{
EncoderParameters encoderParams = new EncoderParameters(1);
ImageCodecInfo tiffCodecInfo = ImageCodecInfo.GetImageEncoders()
.First(ie => ie.MimeType == "image/tiff");
string[] tiffPaths = null;
if (isMultipage)
{
tiffPaths = new string[1];
System.Drawing.Image tiffImg = null;
try
{
for (int i = 0; i < fileNames.Length; i++)
{
if (i == 0)
{
tiffPaths[i] = String.Format("{0}\\{1}.tif",
Path.GetDirectoryName(fileNames[i]),
Path.GetFileNameWithoutExtension(fileNames[i]));
// Initialize the first frame of multipage tiff.
tiffImg = System.Drawing.Image.FromFile(fileNames[i]);
encoderParams.Param[0] = new EncoderParameter(
System.Drawing.Imaging.Encoder.SaveFlag, (long)EncoderValue.MultiFrame);
tiffImg.Save(tiffPaths[i], tiffCodecInfo, encoderParams);
}
else
{
// Add additional frames.
encoderParams.Param[0] = new EncoderParameter(
System.Drawing.Imaging.Encoder.SaveFlag, (long)EncoderValue.FrameDimensionPage);
using (System.Drawing.Image frame = System.Drawing.Image.FromFile(fileNames[i]))
{
tiffImg.SaveAdd(frame, encoderParams);
}
}
if (i == fileNames.Length - 1)
{
// When it is the last frame, flush the resources and closing.
encoderParams.Param[0] = new EncoderParameter(
System.Drawing.Imaging.Encoder.SaveFlag, (long)EncoderValue.Flush);
tiffImg.SaveAdd(encoderParams);
}
}
}
finally
{
if (tiffImg != null)
{
tiffImg.Dispose();
tiffImg = null;
}
}
}
else
{
tiffPaths = new string[fileNames.Length];
for (int i = 0; i < fileNames.Length; i++)
{
tiffPaths[i] = String.Format("{0}\\{1}.tif",
Path.GetDirectoryName(fileNames[i]),
Path.GetFileNameWithoutExtension(fileNames[i]));
// Save as individual tiff files.
using (System.Drawing.Image tiffImg = System.Drawing.Image.FromFile(fileNames[i]))
{
tiffImg.Save(tiffPaths[i], ImageFormat.Tiff);
}
}
}
return tiffPaths;
}
引发异常:GDI +中发生了一般性错误。 – user1509 2012-08-07 08:23:13
对于要转换的文件或通用错误中的更多详细信息,有什么特别的地方吗?很难知道你可能会得到什么样的错误,只是对你准确尝试的内容有一个模糊的概念。 – Jacob 2012-08-07 17:17:05
我已经编辑了Tiff图像到Ms Paint中的gif图像。会导致错误吗? – user1509 2012-08-09 04:43:57