[C#][ICSharpCode.SharpZipLib]圖片縮圖及Zip

  • 580
  • 0

摘要:[C#][ICSharpCode.SharpZipLib]圖片縮圖及Zip

//隨手筆記

最近發現很多案子會需要用到"圖片縮圖"或者是Zip的功能,該功能已寫過多次,

但臨時要找這個功能卻又找不到該專案位置,我頓時火了,於是從寫一個dll lib,

把這一個功能雖然不困難,但要用的時候又很雞肋的東西模組化....!

情境:要把檔案DownSize,譬如,

              圖檔==>縮圖,

             其他檔(ex.word)==>Zip

就上面兩個功能寫了兩個Class

範例如下:

Step1:加入參考 (1)  ICSharpCode.SharpZipLib.dll

                        (2)  ZipOrDownSizeLib2

Step2: using namespace

using ZipOrDownSizeLib2; //引用dll

Step3: Sample Code

           //------前提-------------------------

           // string ext==> 副檔名

           // byte[] attach ==>資料內容

           // string fname ==>檔案名稱

           //---------------------------------------

            int DefautWidth=600; //預設圖片寬度,縮圖會等比例縮圖, ex, 1000X800  ==> 600X480

            byte[] Data = null;

            string[] Type = new string[] { "JPG", "GIF", "PNG", "TIF" };
            if (Type.Contains(ext)) //縮圖
                Data = Help.DownSize(dr.attach, DefautWidth);
            else //Zip
                Data = Help.ZipFile(dr.attach, dr.fname);

 

//---------------------------------------

可以看到上面的"輸入"及"輸出"都是Byte[],但如果是要寫實體檔案到資料夾,

答案非常簡單

     string path="";

     if (Type.Contains(ext)) //縮圖

          path= System.AppDomain.CurrentDomain.BaseDirectory+dr.fname;

     else 

          path= System.AppDomain.CurrentDomain.BaseDirectory+dr.fname+".zip";

     System.IO.File.WriteAllBytes(path, Data);

 

PS.有空再來講解dll內容,yo!

相關DLL下載: dll.zip