查看單個文章
舊 2009-08-01, 08:59 PM   #2 (permalink)
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:97 | 在線時長:9810小時 | 升級還需:186小時級別:97 | 在線時長:9810小時 | 升級還需:186小時級別:97 | 在線時長:9810小時 | 升級還需:186小時級別:97 | 在線時長:9810小時 | 升級還需:186小時級別:97 | 在線時長:9810小時 | 升級還需:186小時級別:97 | 在線時長:9810小時 | 升級還需:186小時級別:97 | 在線時長:9810小時 | 升級還需:186小時
註冊日期: 2002-12-07
文章: 13317
精華: 0
現金: 26373 金幣
資產: 3024233 金幣
預設

不知道你的 jpg存檔函式(如何存檔的程式碼)是...?

DPI 是 像素/英吋
只是一個記錄於 jpg檔之檔頭上的資訊
要改變的話
只要將檔頭資訊取出,改變 XResolution、YResolution 兩個參數的值,再寫回檔頭便可以了

可以用二進位開檔方式將資訊取出
改寫後再寫回

檔案是以 十六進制 方式記載
位址在 第14+15位元組 及 第16+17位元組 上
比如 水平及垂直解析度都是96 dpi的話就是
第十四位元組 --> 00 60 00 60 <--第十七位元組

語法:
Private Sub Command3_Click()
Dim byteData(17) As Byte

    Open "r:\hh.jpg" For Binary Access Read As #1
    Get #1, , byteData()
    Close #1
    
    '將影像解析度改成 72 DPI
    byteData(15) = 72
    byteData(17) = 72
    
    Open "r:\hh.jpg" For Binary Access Write As #1
    Put #1, , byteData()
    Close #1
    Erase byteData

End Sub

此帖於 2009-08-02 10:37 AM 被 mini 編輯.
mini 目前離線  
送花文章: 2007, 收花文章: 7984 篇, 收花: 26785 次
回覆時引用此帖