前回はVB.netでTiff保存したが、今回はJpeg保存してみる。
目標は「カラーBMP画像ファイルを読み込んで画面表示し、
それをカラーJpegファイルとして保存する」だ。
まず、一番簡単なVB.netおまかせ保存だとこんなコードになる。
Imports System.Drawing.Imaging
Public Class Form1
Private PicBox As System.Windows.Forms.PictureBox
Private Sub Form1_Load(sender As Object, e As EventArgs) _
Handles MyBase.Load
' 普通はVSのフォームデザイナでプロパティ指定する
' Form1
Me.Size = New Size(350, 350)
Me.AutoScroll = True
' PictureBox
PicBox = New System.Windows.Forms.PictureBox()
With PicBox
.SizeMode = PictureBoxSizeMode.AutoSize
.Image = System.Drawing.Image.FromFile("E:\Original.bmp")
End With
If PicBox.Image.PixelFormat <> PixelFormat.Format24bppRgb Then
Exit Sub ' RGB24bit Color以外は処理中断
End If
Controls.Add(PicBox)
PicBox.Image.Save("E:\Test01.jpg", Imaging.ImageFormat.Jpeg)
End Sub
End Class
実質的には最後から3行目の” PicBox.Image.Save・・・ ”だけの
チョーお手軽コードである。
で、このチョーお手軽コードでJpeg保存した場合、
そのJpegファイルはどんなクオリティになるのだろうか?
以前Excel VBAで作った解析プログラムで調べてみると・・・
.netおまかせで作られたJpegファイルは
BaseLine方式 Huffman圧縮でJFIFマーカを持つという
形式としてはごく普通のJpegファイルではあるが、
サブサンプリングは4:2:0で水平垂直共に色差を間引いており、
量子化係数テーブルは以下の通りで(#0をYが、#1をCbCrが使用)
これはJFIFの量子化係数テーブルのQ=75変換と一致するもので、
クオリティとしてはよろしくない。
ではエンコーダ・パラメータ指定ではどうなるのか
-つづく-
最新の画像[もっと見る]
- 勝手に何すんねん!? 6年前
- 勝手に何すんねん!? 6年前
- Jpeg保存dllのバグ修正 <長いものは、やはり長い> 6年前
- Jpeg保存dllのバグ修正 <長いものは、やはり長い> 6年前
- Jpeg保存dllのバグ修正 <長いものは、やはり長い> 6年前
- Jpeg保存dllのバグ修正 <長いものは、やはり長い> 6年前
- コンパイル&ビルド 7年前
- コンパイル&ビルド 7年前
- Huffman変換&圧縮処理のつづき 7年前
- ハフマン変換をLUTにする の続き 7年前