by konisi » 2007年9月27日(木) 22:16
まずjpgやらgifやらの画像をbmp形式に変換する方法ですが、すみませんがやった事がないのではっきりとしたことがいえません。
とりあえず「jpg bmp 変換 DLL」とかで検索すれば変換用のライブラリが見つかると思います。
次にビットマップファイルの変換&出力方法ですが、BMヘッダ で検索すると
こんなのが出てきたりするのでこれを利用します。
1.出力した中間ファイルを開く
2.画像データのサイズを取得後、Byte型でメモリを動的に確保
3.次のようなコードを使い、画素を減らす。(今考えて適当に書いたから上手くいくかは保障できない。)
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
Dim x As Long,y As Long
Dim i As Long,j As Long
Type rgb
r As Double
g As Double
b As Double
End Type
Dim OutputBitmap[9999] As rgb
Dim X As Double,Y As Double,index As Long
Dim sqrxy As Double
X=x/100
Y=y/100
sqrxy=Sqr(x*y)
For i=0 To x-1
For j=0 To y-1
'x,yは中間ファイルの画像サイズ
'bmp配列は動的に確保されたメモリ
'tは画像データの1行のサイズ
index=Int(i/X)*100+Int(j/Y)
OutputBitmap[index].r=OutputBitmap[index].r+bmp[i*3+j*t+54]/sqrxy
OutputBitmap[index].g=OutputBitmap[index].g+bmp[i*3+j*t+55]/sqrxy
OutputBitmap[index].b=OutputBitmap[index].b+bmp[i*3+j*t+56]/sqrxy
Next j
Next i
4.表通りにbitmapのバイナリを作成し、出力する。
大体こんな感じになるかと。
#方法は前回のレスに書いたと思ったのですが・・・。
まずjpgやらgifやらの画像をbmp形式に変換する方法ですが、すみませんがやった事がないのではっきりとしたことがいえません。
とりあえず「jpg bmp 変換 DLL」とかで検索すれば変換用のライブラリが見つかると思います。
次にビットマップファイルの変換&出力方法ですが、BMヘッダ で検索すると[url=http://hooktail.org/computer/index.php?Bitmap%A5%D5%A5%A1%A5%A4%A5%EB%A4%F2%C6%FE%BD%D0%CE%CF%A4%B7%A4%C6%A4%DF%A4%EB]こんなの[/url]が出てきたりするのでこれを利用します。
1.出力した中間ファイルを開く
2.画像データのサイズを取得後、Byte型でメモリを動的に確保
3.次のようなコードを使い、画素を減らす。(今考えて適当に書いたから上手くいくかは保障できない。)[hide][code]Dim x As Long,y As Long
Dim i As Long,j As Long
Type rgb
r As Double
g As Double
b As Double
End Type
Dim OutputBitmap[9999] As rgb
Dim X As Double,Y As Double,index As Long
Dim sqrxy As Double
X=x/100
Y=y/100
sqrxy=Sqr(x*y)
For i=0 To x-1
For j=0 To y-1
'x,yは中間ファイルの画像サイズ
'bmp配列は動的に確保されたメモリ
'tは画像データの1行のサイズ
index=Int(i/X)*100+Int(j/Y)
OutputBitmap[index].r=OutputBitmap[index].r+bmp[i*3+j*t+54]/sqrxy
OutputBitmap[index].g=OutputBitmap[index].g+bmp[i*3+j*t+55]/sqrxy
OutputBitmap[index].b=OutputBitmap[index].b+bmp[i*3+j*t+56]/sqrxy
Next j
Next i[/code][/hide]4.表通りにbitmapのバイナリを作成し、出力する。
大体こんな感じになるかと。
#方法は前回のレスに書いたと思ったのですが・・・。