2ページのtiff画像があります。ファイルをjpg形式に変換すると、2ページ目が失われました。 2つの画像をtiffファイルに1つのjpgファイルに入れる方法はありますか? tiffファイルが大きすぎるため、サイズを小さくする必要があります。プログラムでtiffファイルのサイズを減らす方法はありますか?それは私の問題の解決策にもなります。
TIFFには複数のフレームを含めることができますが、JPGには含めることができないため、各単一フレームをJPGに変換する必要があります。
Windows Dev Center Samples から取得:
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;
}
}
using System.Drawing;
using System.Drawing.Imaging;
Bitmap bm=Bitmap.FromFile("photo.tif");
bm.Save("photo.jpg",ImageFormat.Jpeg);
TIF形式は、無料のツールキットではサポートされていない一部のタイプの圧縮をサポートしているため、TIFファイルをJPEGに変換するときにいくつかの問題に直面しました。私はインターネットを検索していくつかの商用ツールキットを試しましたが、それらのほとんどは多くの制限があるため実装が困難です。私が注目したツールキットはleadtoolsです。これは、さまざまな圧縮(異なる圧縮のTIF画像を含む)のロードと保存をサポートしているためです。このツールキットを使用して、画像をJPEG形式に変換しました。詳細については、次のページをご覧ください。 http://support.leadtools.com/CS/forums/8925/ShowPost.aspx
この無料のコードコンバーターを使用して、任意のVB.NetコードをC#に変換できます: http://www.developerfusion.com/tools/convert/vb-to-csharp/
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, ImageFormat.Jpeg);
byte[] imageBytes = m.ToArray();
base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
}
}
<img src = "data:image/jpeg; base64、@ ConvertTiffToJpeg.ImageToBase64(@" c:\ sample.tif ")" />