![]() |
|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
![]() ![]() |
|
主題工具 | 顯示模式 |
|
![]() |
#1 |
註冊會員
|
![]() 各位先進們好,想請教一下,我載入圖片至Image裡後存檔成jpg後,我的原圖解析度是300另存jpg檔後解析度變成70而且可以做一般瀏覽而已,無法使用photoshop開啟,但若存成bmp檔photoshop可以開啟,但解析度依然只有70而已,請問可以限制他載入的解析度大小嗎?謝謝。
|
![]() |
送花文章: 25,
![]() |
![]() |
#2 (permalink) |
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 不知道你的 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 編輯. |
![]() |
送花文章: 2054,
![]() |
![]() |
#3 (permalink) |
註冊會員
|
![]() 我的存檔程式碼如下,請版大多多指教,謝謝。
語法:
Private Sub Command3_Click() Dim i As Integer, X As Long, Y As Long Picture1.AutoRedraw = True Picture1.Width = Image1(0).Width * 4 Picture1.Height = Image1(0).Height * 2 X = 0: Y = 0 For i = 0 To 7 If Image1(i).Picture = 0 Then Else Picture1.PaintPicture Image1(i).Picture, X, Y, Image1(i).Width, Image1(i).Height End If X = X + Image1(0).Width If i = 3 Then X = 0 Y = Y + Image1(0).Height End If Next With CommonDialog2 .FileName = "" .Filter = "JPEG files (*.jpg) |*.jpg|BMP files (*.bmp) |*.bmp" .ShowSave End With If CommonDialog2.FileName = "" Then Exit Sub SavePicture Picture1.Image, CommonDialog2.FileName End Sub |
![]() |
送花文章: 25,
![]() |
![]() |
#4 (permalink) |
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 改成
語法:
Dim sTmp As String With CommonDialog2 .FileName = "" .Filter = "JPEG files (*.jpg) |*.jpg|BMP files (*.bmp) |*.bmp" .ShowSave If .FileName = "" Then Exit Sub sTmp = LCase(Right(.FileName,3)) '得到最右邊的副檔名並統一轉成小寫 If sTmp = "bmp" Then SavePicture Picture1.Image, .FileName ElseIf sTmp = "jpg" Then SaveJPG Picture1.Image, .FileName, 100 '品質從1~100 'SaveJPG 參考 http://forum.slime.com.tw/thread250858.html#post2179045 '**圖像改解析度** Dim byteData(17) As Byte Open .FileName For Binary Access Read As #1 Get #1, , byteData() Close #1 '將影像解析度改成 300 dpi = 十六進制 01 2C byteData(14) = &H01 byteData(15) = &H2C byteData(16) = &H01 byteData(17) = &H2C Open .FileName For Binary Access Write As #1 Put #1, , byteData() Close #1 '************** EndIf End With |
![]() |
送花文章: 2054,
![]() |
向 mini 送花的會員:
|
![]() |
#6 (permalink) |
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 根據 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 '************** 因為電腦讀檔案是以堆疊方式讀出 所以寫入時也就是用倒序方式寫入讀檔 所以要倒過來先填入 &H23 再填 &H2E byteData(&H26) = &H23 byteData(&H27) = &H2E 此帖於 2009-08-02 04:54 PM 被 mini 編輯. |
![]() |
送花文章: 2054,
![]() |
向 mini 送花的會員:
|
![]() ![]() |
|
|
![]() |
||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
疑問 - VB6.0載入圖檔自動排列 | chung1206 | 程式語言討論區 | 11 | 2009-07-31 08:50 PM |
PhotoImpact 8可以做到圖片放大但是解析度不變嗎 | 80704 | 一般電腦疑難討論區 | 4 | 2003-08-09 10:18 AM |
請問大大用什麼軟體可以讓圖片放大但是解析度不變?? | 80704 | 一般電腦疑難討論區 | 5 | 2003-07-27 10:23 PM |
請問製作網頁上的照片所限制的大小或解析度應為?? | carrie_tsg | 一般電腦疑難討論區 | 4 | 2003-04-28 05:05 PM |
解析度調整到1024*768,但是字與圖片都太小 | Taggen | 硬體疑難使用問題討論區 | 4 | 2003-02-05 05:35 PM |