我有两页的tiff图像。 当我将文件转换为jpg格式时,我丢失了第二页。 有没有办法将tiff文件上的两个图像放入一个jpg文件中。 因为tiff文件太大我不得不减小它们的大小。有没有办法以编程方式减少tiff文件大小?它也可以解决我的问题。
答案 0 :(得分:29)
由于TIFF可以包含多个帧但JPG不能,因此您需要将每个帧转换为JPG。
public static string[] ConvertTiffToJpeg(string fileName)
{
using (Image imageFile = Image.FromFile(fileName))
{
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}{2}.jpg",
Path.GetDirectoryName(fileName),
Path.GetFileNameWithoutExtension(fileName),
frame);
bmp.Save(jpegPaths[frame], ImageFormat.Jpeg);
}
}
return jpegPaths;
}
}
答案 1 :(得分:5)
using System.Drawing;
using System.Drawing.Imaging;
Bitmap bm=Bitmap.FromFile("photo.tif");
bm.Save("photo.jpg",ImageFormat.Jpeg);
答案 2 :(得分:0)
我们在将TIF文件转换为JPEG时遇到了一些问题,因为TIF格式支持免费工具包不支持的某些类型的压缩。 我搜索了互联网并尝试了一些商业工具包,但其中大多数都很难实现,有很多限制。引起我注意的工具包是leadtools,因为它支持加载和保存许多文件格式(包括具有不同压缩的TIF图像)。我们使用此工具包将图像转换为JPEG格式。您可以在以下页面中找到更多信息: http://support.leadtools.com/CS/forums/8925/ShowPost.aspx
请注意,您可以使用此免费代码转换器将任何VB.Net代码转换为C#: http://www.developerfusion.com/tools/convert/vb-to-csharp/
答案 3 :(得分:0)
public static class ConvertTiffToJpeg
{
static string base64String = null;
public static string ImageToBase64(string tifpath)
{
string path = tifpath;
using (System.Drawing.Image image = System.Drawing.Image.FromFile(path))
{
using (MemoryStream m = new MemoryStream())
{
image.Save(m, image.RawFormat);
byte[] imageBytes = m.ToArray();
base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
}
}