隨筆-7  評論-24  文章-102  trackbacks-0

          內容引用自:
          菜鳥問題,高分求解:關于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.aygfsteel.com/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流。 
          posted on 2010-05-04 15:41 黃小二 閱讀(826) 評論(0)  編輯  收藏 所屬分類: ASP.NET
          主站蜘蛛池模板: 土默特左旗| 宜春市| 石首市| 邓州市| 东方市| 铜山县| 美姑县| 南平市| 沂水县| 石林| 顺昌县| 廉江市| 石泉县| 襄汾县| 桃江县| 邵东县| 临朐县| 奎屯市| 台北市| 张家川| 司法| 赤峰市| 固安县| 贵南县| 冷水江市| 双桥区| 胶州市| 长葛市| 抚顺县| 东丰县| 仙居县| 杂多县| 松江区| 沭阳县| 大足县| 五莲县| 永宁县| 松桃| 萍乡市| 大理市| 镶黄旗|