萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp編程 >> ASP使用aspjpeg固定比例裁剪縮略圖

ASP使用aspjpeg固定比例裁剪縮略圖

   一般生成縮略圖的方法有兩種:

  一是縮放成固定大小的小圖片

  二是縮放成等比例的小圖片

  第一種方法的缺點是,會使圖片變形,例如一個身材苗條的MM變成一個胖MM

  第二種方法的缺點是,如果圖片是放在一個表格中顯示,並且圖片寬高比和這個表格不同,就不能充滿整個表格,留下空隙,不好看

  這裡介紹的方法是“固定比例裁剪”,也就是說,生成的縮略圖寬高比是固定的,但是不會變形。如果原圖的寬高比大於設定的寬高比,就會自動剪掉左右兩旁多余的圖;如果原圖的寬高比小於設定的寬高比,就會自動剪掉上下的多余的圖。

  Copy to ClipboardLiehuo.Net Codes

  引用的內容:[www.veryhuo.com]

  ‘===============================================

  ‘生成新規格大小的圖片

  ‘失敗返回False,成功返回True

  ‘sourcpic-源圖片絕對路徑,newwidth-新圖片寬,newheight-新圖片高,destpic-目標圖片絕對路徑

  ‘===============================================

  Function MakePic(sourcpic,newwidth,newheight,destpic)

  On error resume next

  MakePic=false

  Set Jpeg = Server.CreateObject(“Persits.Jpeg”)

  if Err then

  response.Write (“錯誤:空間沒安裝aspjpeg組件”)

  response.end

  end if

  Jpeg.Quality = 100

  Jpeg.Open sourcpic

  jpeg.PreserveAspectRatio = True ‘等比縮放

  if jpeg.OriginalWidth/jpeg.OriginalHeight > newwidth/newheight then’太扁了,要剪掉左右部分

  jpeg.Height = newheight

  jpeg.crop CInt((jpeg.Width – newwidth)/2),0,CInt((jpeg.Width – newwidth)/2)+newwidth,newheight

  else ‘太高了,要剪掉上下部分

  jpeg.Width = newwidth

  jpeg.crop 0,CInt((jpeg.Height – newheight)/2),newwidth,CInt((jpeg.Height – newheight)/2)+newheight

  end if

  Jpeg.Save destpic

  if err.number=0 then MakePic=True

  Jpeg.Close

  Set Jpeg=Nothing

  End function

copyright © 萬盛學電腦網 all rights reserved