六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ASP.NET圖象處理詳細(xì)說明(2)

[摘要]二、讀取和改變圖象文件大小   讀取圖片?直接使用HTML不就可以了?當(dāng)然可以,我們這里只是提供一種選擇和方法來實(shí)現(xiàn)這一功能,具體這一功能的使用,我們可能需要在實(shí)踐中更多的學(xué)習(xí)。先來看程序源代碼: <% ' import all relevant namespaces %> <%@...

二、讀取和改變圖象文件大小

   讀取圖片?直接使用HTML不就可以了?當(dāng)然可以,我們這里只是提供一種選擇和方法來實(shí)現(xiàn)這一功能,具體這一功能的使用,我們可能需要在實(shí)踐中更多的學(xué)習(xí)。先來看程序源代碼:

  <% ' import all relevant namespaces %>
 <%@ import namespace="System" %>
 <%@ import namespace="System.Drawing" %>
 <%@ import namespace="System.Drawing.Imaging" %>
 <%@ import namespace="System.IO" %>
 
 <script runat="server">
 Sub sendFile()
 dim g as System.Drawing.Image = System.Drawing.Image.FromFile(server.mappath(request("src")))
 dim thisFormat=g.rawformat
 dim imgOutput as New Bitmap(g, cint(request("width")), cint(request("height")))
 if thisformat.equals(system.drawing.imaging.imageformat.Gif) then
 response.contenttype="image/gif"
 else
 response.contenttype="image/jpeg"
 end if
 imgOutput.save(response.outputstream, thisformat)
 g.dispose()
 imgOutput.dispose()
 end sub
 
 Sub sendError()
 dim imgOutput as New bitmap(120, 120, pixelformat.format24bpprgb)
 dim g as graphics = graphics.fromimage(imgOutput)
 g.clear(color.yellow)
 g.drawString("錯(cuò)誤!", New font("黑體",14,fontstyle.bold),systembrushes.windowtext, New pointF(2,2))
 response.contenttype="image/gif"
 imgOutput.save(response.outputstream, imageformat.gif)
 g.dispose()
 imgOutput.dispose()
 end sub
 </script>
 
 <%
 response.clear
 if request("src")=" or request("height")=" or request("width")=" then
 call sendError()
 else
 if file.exists(server.mappath(request("src"))) then
 call sendFile()
 else
 call sendError()
 end if
 end if
 response.end
 %> 

   在以上的程序中,我們看到兩個(gè)函數(shù),一個(gè)是SendFile,這一函數(shù)主要功能為顯示服務(wù)器上的圖片,該圖片的大小通過Width和Height設(shè)置,同時(shí),程序會(huì)自動(dòng)檢測(cè)圖片類型;另外一個(gè)是SendError,這一函數(shù)的主要功能為服務(wù)器上的圖片文件不存在時(shí),顯示錯(cuò)誤信息,這里很有趣,錯(cuò)誤信息也是通過圖片給出的(如圖):
 

   以上的程序顯示圖片并且改變圖片大小,現(xiàn)在,我們將這個(gè)程序進(jìn)一步,顯示圖片并且保持圖片的長(zhǎng)寬比例,這樣,和實(shí)際應(yīng)用可能比較接近,特別是需要制作電子相冊(cè)或者是圖片網(wǎng)站的時(shí)候比較實(shí)用。我們先來看主要函數(shù):

  Function NewthumbSize(currentwidth, currentheight)
 dim tempMultiplier as Double
 if currentheight > currentwidth then
 tempMultiplier = 200 / currentheight
 Else
 tempMultiplier = 200 / currentwidth
 end if
 dim NewSize as New Size(CInt(currentwidth * tempMultiplier), CInt(currentheight * tempMultiplier))
 return NewSize
 End Function 


   以上程序是增加的一個(gè)函數(shù)NewthumbSize,該函數(shù)專門處理改變一會(huì)的圖片大小,這個(gè)圖片的長(zhǎng)寬和原圖片的長(zhǎng)寬保持相同比例。其他部分請(qǐng)參考上文程序代碼。
 
   三、畫圖特效

   如果只是將圖片顯示在網(wǎng)頁(yè)上,這樣未免顯得簡(jiǎn)單。現(xiàn)在,我們來進(jìn)一步感受ASP.NET的強(qiáng)大功能。我們將學(xué)習(xí)圖象處理中常用的圖象反轉(zhuǎn)、圖象切割、圖象拉伸等技巧。
 先來看看程序效果:

 

   仔細(xì)看,我們可以找到各種圖象處理效果。現(xiàn)在,我們來看看程序代碼:

  <%@ Page Language="vb" Debug="True" %>
 <%@ import namespace="system.drawing" %>
 <%@ import namespace="system.drawing.imaging" %>
 <%@ import namespace="system.drawing.drawing2d" %>
 <%
 dim strFilename as string
 dim i as System.Drawing.Image
 strFilename = server.mappath("./chris-fsck.jpg")
 
 i = System.Drawing.Image.FromFile(strFilename)
 
 dim b as New system.drawing.bitmap(i.width, i.height, pixelformat.format24bpprgb)
 dim g as graphics = graphics.fromimage(b)
 
 g.clear(color.blue)
 
 '旋轉(zhuǎn)圖片
 i.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipX)
 g.drawimage(i,New point(0,0))
 i.RotateFlip(System.Drawing.RotateFlipType.Rotate270FlipY)
 
 g.RotateTransform(10)
 g.drawimage(i,New point(0,0))
 g.RotateTransform(10)
 g.drawimage(i,New point(20,20))
 g.RotateTransform(10)
 g.drawimage(i,New point(40,40))
 g.RotateTransform(10)
 g.drawimage(i,New point(40,40))
 g.RotateTransform(-40)
 g.RotateTransform(90)
 g.drawimage(i,New rectangle(100,-400,100,50),New rectangle(20,20,i.width-20,i.height-20),GraphicsUnit.Pixel)
 g.RotateTransform(-90)
 
 ' 拉伸圖片
 g.drawimage(i,New rectangle(10,10,50,50),New rectangle(20,20,i.width-20,i.height-20),GraphicsUnit.Pixel)
 g.drawimage(i,New rectangle(50,10,90,50),New rectangle(20,20,i.width-20,i.height-20),GraphicsUnit.Pixel)
 g.drawimage(i,New rectangle(110,10,150,50),New rectangle(20,20,i.width-20,i.height-20),GraphicsUnit.Pixel)
 
 
 '切割圖片
 g.drawimage(i,50,100,New rectangle(180,80,60,110),GraphicsUnit.Pixel)
 g.drawimage(i,140,100,New rectangle(180,80,60,110),GraphicsUnit.Pixel)
 
 '旋轉(zhuǎn)圖片
 i.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipX)
 g.drawimage(i,230,100,New rectangle(180,110,60,110),GraphicsUnit.Pixel)
 
 response.contenttype="image/jpeg"
 
 b.save(response.outputstream, imageformat.jpeg)
 
 b.dispose()
 
 %> 


   在以上的程序中,我們看到實(shí)現(xiàn)圖象處理的各種技巧,仔細(xì)觀察,我們可以知道旋轉(zhuǎn)圖片其實(shí)是用了一個(gè)RotateFlip方法;而切割和拉伸圖片,完全是通過設(shè)置DrawImage的不同參數(shù)來實(shí)現(xiàn)。
 
   四、總結(jié)

   ASP.NET的圖象處理可以實(shí)現(xiàn)的功能很多,我們?cè)谶@里其實(shí)只是簡(jiǎn)單的介紹,更多功能的應(yīng)用,需要我們?cè)趯?shí)踐中摸索、總結(jié)。




主站蜘蛛池模板: 日韩精品成人免费观看 | 四虎成人影院 | 午夜看片影院在线观看 | 亚洲精品综合 | 欧美性专区 | 综合久久综合 | 色成网| 日本青青草 | 欧美性xxx | 天天操天天爽天天射 | 小小的日本在线观看中文 | 色天天综合 | 日本免费黄色网址 | 天天色综 | 欧美一级特黄乱妇高清视频 | 午夜不卡视频 | 欧美一区二区三区美人 | 亚洲性视频网站 | 青青青在线视频播放 | 自拍偷拍2019 | 亚洲日本网站 | 天天看天天做 | 欧美一区二区三区男人的天堂 | 日日狠狠 | 一级毛片免费高清视频 | 亚洲 欧美精品 | 日韩大片免费在线观看 | 色综合久久夜色精品国产 | 亚洲激情久久 | 日本大片在线免费观看 | 日韩毛片在线视频 | 天天操天天干天天操 | 欧美又大粗又爽又黄大片视频黑人 | 日本黄页网 | 亚洲欧美中文日韩在线v日本 | 日本aⅴ在线不卡免费观看 日本aⅴ在线 | 伊人影院在线观看 | 欧美怡红院免费的视频 | 日韩黄色在线视频 | 天天操天天射天天爽 | 在线成人免费观看国产精品 |