以下為本站文章分類清單

  1. AJAXspacer
  2. ASPspacer
  3. CSSspacer
  4. Javascriptspacer
  5. Windows 應用程式spacer
  6. 網頁設計
  7. 評論、短文、雜文spacer
  8. 版主spacer
  9. 最新回應spacer

以下為本頁本文內容

ASPJpeg 縮圖製作例

ASPJpeg 這組套件,事實上我沒有介紹太詳細,最近有人詢問功能,自己看了自己的文章,只有一個字-汗!那就快補點有用的。

最簡單的縮圖程式例如下:

<%
'(1)建立 ASPJpeg 物件
Set Jpeg = Server.CreateObject("Persits.Jpeg")

'(2)取得原始圖檔
Jpeg.Open "c:\path\myimage.jpg"

' (3)指定新尺寸
L = 100

'(4)計算一下等比縮放的大小
Jpeg.Width = L
Jpeg.Height = Jpeg.OriginalHeight * L / Jpeg.OriginalWidth

'(5)存檔或另存新檔
Jpeg.Save "c:\path\thumbnail.jpg"

%>

原則上不複雜,其中步驟(2),可以直接銜接到上傳的圖檔,ASPJpeg 100% 支援中文檔名,這點不用擔心。

步驟(5),當然你可以使用 Server.MapPath() 使縮圖存放在網站之下。

在步驟(4)中,計算縮放比例,這點我是一定會處理,尤其要處理的檔案是直式或橫式,如果不知道尺寸,根本很難辦,在找到 ASPJpeg 前,我都使用 imageSize 這個套件來取得圖片尺寸,在頁面上顯示時,加以適當調整。

但,ASPJpeg 本身就有偵測圖片尺寸功能,也就是建立好 ASPJpeg 物件及取得圖片後(步驟(1)(2)),原始圖檔的寬度為 Jpeg.OriginalWidth,而高度為Jpeg.OriginalHeight,這裡沒有解析度的問題,一律為像素。

所以,要底縮圖尺寸寬高該怎麼訂,可以先測一下原始圖檔是直式或橫式,如:

If jpeg.OriginalWidth > jpeg.OriginalHeight Then
   jpeg.Width = L
   jpeg.Height = jpeg.OriginalHeight * L / jpeg.OriginalWidth
Else
   jpeg.Height = L
   jpeg.Width = jpeg.OriginalWidth * L / jpeg.OriginalHeight
End If

不過 ASPJpeg 強就強在,他還可以指定「等比」,上面的程式太囉嗦,改成:

jpeg.PreserveAspectRatio = True

If jpeg.OriginalWidth > jpeg.OriginalHeight Then
   jpeg.Width = L
Else
   jpeg.Height = L
End If

ASPJpeg 縮圖的效果,以 800X 600 尺寸,實作的經驗,大約可以保持在 50K 左右,如果圖檔內容色階較多時,我看過有的上百K,甚至達 300K,但不管怎麼說,都一樣無損「強大」的美稱。

卜維丰 12/3 07'

以下為文章回應區

同意轉載,不過麻煩看一下轉載需知

卜維丰   2008/10/22 下午 02:16:00

ballboy, 圖片當然是要在自己主機上才能處理囉~~^^

ballboy   2008/10/13 下午 02:42:00

請問一下~
如果圖片並不在本機~
而是在遠端 ex.flick
這有支援嗎? 還是程式要怎樣改?

謝謝!!

卜維丰   2008/6/18 下午 12:05:00

.....的人類,

官網有試用版
http://www.aspjpeg.com/download.html

進化中的人類   2008/6/18 上午 11:00:00

請問該套件有得下載嗎?

二姐   2007/12/3 下午 12:32:00

Audi..
謝謝你提供的範例..真的幫了我很多,等下找時間消化一下,有問題再繼續向你請教。
最近一直佔用你的時間真的很不好意思^^
我會把你的部落格推薦給我朋友,一定也對他們很有幫助的!

給個回應
姓名:
佈落格網址:
  如果您是要發問問題, 最好有個問題測試的網址, 這樣比較容易找到您問題所在, 謝謝
內容: