web-dev-qa-db-ja.com

TIFFをJPG形式に変換する

2ページのtiff画像があります。ファイルをjpg形式に変換すると、2ページ目が失われました。 2つの画像をtiffファイルに1つのjpgファイルに入れる方法はありますか? tiffファイルが大きすぎるため、サイズを小さくする必要があります。プログラムでtiffファイルのサイズを減らす方法はありますか?それは私の問題の解決策にもなります。

14
ozman

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; 
        } 
} 
29
Stephan Bauer
using System.Drawing;
using System.Drawing.Imaging;

Bitmap bm=Bitmap.FromFile("photo.tif");
bm.Save("photo.jpg",ImageFormat.Jpeg);
5
ketan italiya

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/

1
Roba.M
  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 ")" />

c#。nettiff-to-jpegtiff