|
2013/05/02(Thu) 13:34:28 編集(投稿者) 2013/05/02(Thu) 05:19:16 編集(投稿者)
今画像処理のところで苦戦しています
見た目の画質を保持したまま、ファイルサイズを小さくしたいのですが vb.netで画像を読み込み 画像サイズを小さくしてitextsharpでPDFに貼り付けして保存していますが PDFファイルサイズがjpgファイルの10倍くらいになります
・諸事情によりjpgデータを一旦vb.netのimegeで読み込む必要があります ・読み込み直後のimageはvb.netのimg.RawFormat.Equalsで調べるとJPGと判定されます ・itextsharpに流したあとのimageはIsJpegではfalseが返ります
com.lowagie.text では img = Image.getInstance(writer, awtImage, 0.3f) というコードでjpgサイズを指定した読み込みができるようなのですが・・・
今はいまいち何のデータを扱っているのかわからない状態です
ファイルサイズを小さくするためのご助言いただけませんでしょうか
以下最少コードを示します
'■準備 Dim doc As Document = New Document Dim 保存PDFファイル名 As String = "テスト.pdf" Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream(保存PDFファイル名, FileMode.Create)) doc.Open()
’■画像の読み込み Dim fs As New System.IO.FileStream( _ "画像.jpg", _ System.IO.FileMode.Open, _ System.IO.FileAccess.Read) Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(fs) fs.Close() ’■itextsharpへの引き渡し
Dim 画像 As iTextSharp.text.Image 画像 = iTextSharp.text.Image.GetInstance(img, iTextSharp.text.Color.WHITE) ’■ドキュメントへの挿入 doc.Add(画像)
’■終了 doc.Close() MessageBox.Show("完了", "iTextSharp")
|