熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET圖象處理詳解(2)

2013-11-13 09:50:55  來源: .NET編程 
    二讀取和改變圖象文件大小

  讀取圖片?直接使用HTML不就可以了?當然可以我們這裡只是提供一種選擇和方法來實現這一功能具體這一功能的使用我們可能需要在實踐中更多的學習先來看程序源代碼

  <% import all relevant namespaces %>

   <%@ import namespace=System %>

   <%@ import namespace=SystemDrawing %>

   <%@ import namespace=SystemDrawingImaging %>

   <%@ import namespace=SystemIO %>

  <script runat=server

   Sub sendFile()

   dim g as SystemDrawingImage = SystemDrawingImageFromFile(servermappath(request(src)))

   dim thisFormat=grawformat

   dim imgOutput as New Bitmap(g cint(request(width)) cint(request(height)))

   if thisformatequals(systemdrawingimagingimageformatGif) then

   ntenttype=image/gif

   else

   ntenttype=image/jpeg

   end if

   imgOutputsave(responseoutputstream thisformat)

   gdispose()

   imgOutputdispose()

   end sub

  Sub sendError()

   dim imgOutput as New bitmap( pixelformatformatbpprgb)

   dim g as graphics = graphicsfromimage(imgOutput)

   gclear(coloryellow)

   gdrawString(錯誤! New font(黑體fontstylebold)systembrusheswindowtext New pointF())

   ntenttype=image/gif

   imgOutputsave(responseoutputstream imageformatgif)

   gdispose()

   imgOutputdispose()

   end sub

   </script>

  <%

   responseclear

   if request(src)= or request(height)= or request(width)= then

   call sendError()

   else

   if fileexists(servermappath(request(src))) then

   call sendFile()

   else

   call sendError()

   end if

   end if

   responseend

   %>

  在以上的程序中我們看到兩個函數一個是SendFile這一函數主要功能為顯示服務器上的圖片該圖片的大小通過Width和Height設置同時程序會自動檢測圖片類型另外一個是SendError這一函數的主要功能為服務器上的圖片文件不存在時顯示錯誤信息這裡很有趣錯誤信息也是通過圖片給出的(如圖)

  

  以上的程序顯示圖片並且改變圖片大小現在我們將這個程序進一步顯示圖片並且保持圖片的長寬比例這樣和實際應用可能比較接近特別是需要制作電子相冊或者是圖片網站的時候比較實用我們先來看主要函數

  Function NewthumbSize(currentwidth currentheight)

   dim tempMultiplier as Double

   if currentheight > currentwidth then

   tempMultiplier = / currentheight

   Else

   tempMultiplier = / currentwidth

   end if

   dim NewSize as New Size(CInt(currentwidth * tempMultiplier) CInt(currentheight * tempMultiplier))

   return NewSize

   End Function

  以上程序是增加的一個函數NewthumbSize該函數專門處理改變一會的圖片大小這個圖片的長寬和原圖片的長寬保持相同比例其他部分請參考上文程序代碼


From:http://tw.wingwit.com/Article/program/net/201311/11732.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.