引用:
作者: chung1206
版大您好,如果我只要存成bmp檔就好dpi300這樣會不會比較簡單點?JPG的部份蠻複雜的,我真得看不太懂,謝謝。
|
根據
http://www.atlaspost.com/landmark-339129.htm 上的 Bitmap File Header
其水平與垂直解析度記載於
0026h H-Resolution 4 水平解析度(單位:像素/公尺)【註8】
002Ah V-Resolution 4 垂直解析度(單位:像素/公尺)
...
語法:
【註8】若要換算為 dpi,則將此欄數值要除以39.37(吋/公尺)
例如,此欄數值若為 2834 (pixels per meter),
則 2834 ÷ 39.37 = 72 (pixels per inch) = 72 dpi
所以改成
語法:
'**圖像改解析度**
Dim byteData(&h2B) As Byte
Open .FileName For Binary Access Read As #1
Get #1, , byteData()
Close #1
'將影像解析度改成 150 dpi = 150*39.37 =取整數=> 5906 = 十六進制 17 12
byteData(&H26) = &H12
byteData(&H27) = &H17
byteData(&H2A) = &H12
byteData(&H2B) = &H17
Open .FileName For Binary Access Write As #1
Put #1, , byteData()
Close #1
'**************
300 dpi的話是 300*39.37=11811=2E 23
因為電腦讀檔案是以堆疊方式讀出
所以寫入時也就是用倒序方式寫入讀檔
所以要倒過來先填入 &H23 再填 &H2E
byteData(&H26) = &H23
byteData(&H27) = &H2E