asp.net對於影像檔的操作–儲存、讀取存取

來源:互聯網
上載者:User

內容引用自:
菜鳥問題,高分求解:關於SQL Server儲存圖片的問題

http://topic.csdn.net/t/20050415/20/3940356.html

資料庫中Image類型的資料的存取(For C#/ASP.NET)

http://www.cnblogs.com/billsfeng/archive/2008/07/31/1257579.html

SQL Server儲存映像資料的策略與方法

http://www.yesky.com/20030113/1648152.shtml

How To Read and Write BLOB Data by Using ADO.NET with Visual C# .NET

http://support.microsoft.com/default.aspx?scid=kb;EN-US;309158

1、圖片儲存

a.儲存於資料庫

         在大多數情況下,最好把圖片檔案與其它資料一起存在資料庫中。因為將影像資料檔案儲存在資料庫中有許多優點:

  易於管理 當BLOB與其他資料一起儲存在資料庫中時,BLOB和表格是資料一起備份和恢複。這樣就降低了表格式資料與BLOB資料不同步的機會,而且降低了其他使用者無意中刪除了檔案系統中BLOB資料位元置的路徑和風險。另外,將資料存放區在資料庫中BLOB和其他資料的插入、更新和刪除都在同一個事務中實現。這樣就確保了資料的一致性和檔案與資料庫之間的一致性。還有一點好處是不需要為檔案系統中的檔案單獨設定安全性。

  延展性 儘管檔案系統被設計為能夠處理大量不同大小的對象,但是檔案系統不能對大量小檔案進行最佳化。在這種情況下,資料庫系統可以進行最佳化。

  可用性 資料庫具有比檔案系統更多的可用性。資料庫複寫允許在分布式環境中複製、分配和潛在的修改資料。在主系統失效的情況下,日誌轉移提供了保留資料庫備用副本的方法。

引自:SQL Server儲存映像資料的策略與方法

b.儲存於檔案系統

當然,在某些情況下,將圖片儲存在檔案系統中將是更好的選擇:
(1)使用圖片的應用程式需要資料流效能,例如即時的視頻重現。
(2)象Microsoft PhotoDraw或者Adobe Photoshop這樣的應用程式經常訪問BLOB,這些應用程式只知道怎樣訪問檔案。
(3)需要使用一些NTFS檔案系統中的特殊功能,例如遠程儲存。

引自:SQL Server儲存映像資料的策略與方法

    建議:減輕資料庫處理負擔,也可以建立專門的檔案伺服器存放圖片和視頻.

2、資料庫儲存及讀取圖片資料

1.將Image影像檔存入到資料庫中  我們知道資料庫裡的Image類型的資料是"位元據",因此必須將影像檔轉換成位元組數組才能存入資料庫中.

2.從SQL Server資料庫讀取Image類型的資料,並轉換成bytes[]或Image影像檔

引自:資料庫中Image類型的資料的存取(For C#/ASP.NET)

3、asp.net中自訂對圖片檔案的訪問

web.config

  <system.web> <!-- vs調試、iis6 -->   
    <httpHandlers>
      <add path="*.jpg" verb="*" type="包名.ImageHandler, dll檔案" />
      <add path="*.jpeg" verb="*" type="包名.ImageHandler, dll檔案" />
      <add path="*.png" verb="*" type="包名.ImageHandler, dll檔案" />
      <add path="*.bmp" verb="*" type="包名.ImageHandler, dll檔案" />
    </httpHandlers>
  </system.web>
  <system.webServer><!-- iis7 -->
    <handlers>      
      <add name="jpgMark" path="*.jpg" verb="*" type="包名.ImageHandler, dll檔案" />
      <add name="jpegMark" path="*.jpeg" verb="*" type="包名.ImageHandler, dll檔案" />
      <add name="pngMark" path="*.png" verb="*" type="包名.ImageHandler, dll檔案" />
      <add name="bmpMark" path="*.bmp" verb="*" type="包名.ImageHandler, dll檔案" />
    </handlers>
  </system.webServer>


ImageHandler 圖片縮放與浮水印效果

http://www.blogjava.net/kiant/articles/317469.html

4、其他組件

Persits AspJpeg元件圖表片浮水印\縮圖\圖片合并\圖片切割\執行個體教程

http://www.aspxhome.com/asp/component/200812/620614.htm

AspJpeg功能摘要
支援JPEG, GIF, BMP, TIFF 和 PNG 格式圖片. 輸出格式始終為 JPEG
源圖片可以來源於磁碟、記憶體、或者記錄集(資料庫)
縮圖片可以儲存到磁碟、記憶體、或者HTTP流
支援三種更改大小方式: nearest-neighbor, bilinear, and bicubic. 
可以在圖片之上添加圖片或者文字. 
支援畫中畫
支援複製,反轉,旋轉,銳利化,灰階調節.
可以調節壓縮比率,以得到最佳輸出效果和大小. 
從Jpeg圖片中抽取EXIF 和 IPTC資料.
CMYK-RGB轉換
Read/write access to individual pixels of an image. (從圖象中對任意象素進行讀/寫存取。)

5、C# 處理GIF 圖片的問題?(分不夠,還有)

http://topic.csdn.net/t/20060703/11/4856635.html

8 樓tzzzc(冷劍)回複於 2006-07-03 13:33:19 得分 0 
to:Knight94(愚翁)   
  Graphics   myImg   =   Graphics.FromImage(zoomImg);//建立Graphics   
  在最後一句出現問題(處理GIF   圖片時候,提示無法從帶有索引像素格式的映像建立   Graphics),老提示:A   Graphics   object   cannot   be   created   from   an

9 樓Knight94(愚翁)回複於 2006-07-03 13:41:34 得分 0
 不要用gif映像直接產生graphics對象,   
    
  處理流程:   
  1、gif   分解成png或者jpg檔案組;   
  2、對每個png或者jpg檔案進行處理;   
  3、把處理好的png或者jpg檔案組,進行合成一個gif。   

6、ASP.NET輸出PNG圖片時出現GDI+一般性錯誤的解決方案
詳細出處參考:http://www.jb51.net/article/17063.htm

Response.ContentType = "image/PNG"; 
using (MemoryStream ms = new MemoryStream()) 

img.Save(ms, ChartFormat.Png); 
Response.OutputStream.Write(ms.GetBuffer(), 0, (int)ms.Length); 

就可以輸入png圖片了。 
這是由於Response.OutputStream這個流的無法往回讀取造成的,也就是它的CanSeek屬性是false。png映像產生的時候不像jpeg,不是流式的,已經寫入的就不再管了,而是需要往回不斷地寫入結構資料。但是response流無法往回seek,所以直接用就不行了。改成一個可以seek的MemoryStream,先產生好png圖片,然後再輸出到response流。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.