|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2004-10-26, 10:19 AM | #1 |
榮譽會員
|
增強windows 2000原有的的畫筆mspaint
windows原有的的畫筆程序使用方便,還可以進行一定的圖像處理,適合完成一些簡單的工作。
但是win2000的畫筆程序mspaint預設情況下僅僅可以處理bmp文件,不能處理日常工作中使用很多的jpg,gif和png,tif格式,還需要專門的轉化程序才行。 如圖win2kpaint.png,僅僅可以處理bmp格式的文件。 而微軟公司顯然注意到了這種情況,後來的windows xp 和windows 2k3,不需要任何其他輔助程序,就可以直接處理gif,jpg,png,tif格式的文件,非常方便。 現在使用win2000的人仍然很多,可以讓win2000的mspaint也處理多種格式的圖像文件嗎?可以的,可以採用2種方法: 1 插件法: mspaint可以使用插件來增強功能,在安裝了office後,常常會發現mspaint可以開啟和儲存於jpg和gif格式的文件了。 安裝office的時候,就會安裝幾個插件使得mspaint可以開啟和儲存於jpg和gif格式的文件,下面把我從of fice2k3里面抽取出來的2個插件簡單介紹一下,這樣就可以不安裝office,而直接安裝插件。 使用我提供的grpflt.rar,執行裡面的grpflt.bat就會自動安裝office2k3提供的jpg和gif插件。 如有一圖檔win2kpaint 2.PNG,mspaint可以開啟儲存於其他格式的圖像文件了。 但是這個時候的mspaint仍然不支持其他格式的文件,如png,cdr格式。 這裡我特別說明一下png格式,png格式有很多優點,相對於jpg文件來說,png是無損壓縮的,適合反覆進行圖像處理,而不會造成圖像品質下降,相對於bmp文件來,png的壓縮比很高,文件大小遠遠小於bmp文件,非常適合網路傳輸。相對於gif格 式,處理png格式的算法是免費的,沒有專利的問題。 儘管office2k3提供了其他格式如png,cdr格式的插件,但是mspaint只能使用舊的格式插件,不能利用這些新的插件來處理圖像文件,那麼為什麼xp,2k3的mspaint無需安裝office就可以處理多種格式的插件呢? 2 移植法:從winxp開始,微軟提供了一個強大的動態庫gdiplus.dll,這個動態庫就包括處理各種圖像格式的功能,xp和2k3版本的mspaint開啟某種格式的圖像文件的程序如下: 1.首先檢測是否存在gdiplus.dll,如果存在,就先用gdiplus解碼圖像文件的功能。 2.如果gdiplus不存在,或者gdiplus解碼失敗,就繼續使用舊的插件機制。 3.如果處理相應格式插件不存在,那麼就報告錯誤。 移植法程序如下: 1。找一個與你的win2000相對應的語言版本的winxp或者win2k3,複製mspaint.exe和gdiplus.dll。(在windows目錄搜尋) 2。執行如下的批次處理文件: copy gdiplus.dll %windir%\system32\gdiplus.dll copy mspaint.exe %windir%\system32\dllcache\mspaint.exe copy mspaint.exe %windir%\system32\mspaint.exe 或者直接把mspaint.exe和gdiplus.dll複製到system32 和system32下面的dllcache,複製到dllcache是為了避免 windows的系統恢復功能自動恢復被覆蓋的mspaint.exe文件,如果出現系統檔案被取代的對話視窗的警告,不要理睬,就可以了。 這樣我們就把winxp的mspaint移植到了win2000,而且保留了需要的功能,如圖檔名win2kpaint3.png,現在可以處理png了。 如果不複製gdiplus,那麼xp的mspaint基本和win2000的mspaint一樣的功能。 這個方法不需要office提供的插件,同時可以繼續使用office提供的插件處理那些gdiplus不能處理的文件格式。 Q: 在WIN2003里, gdiplus.dll 不是在system32資料夾裡而是*:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus***這個資料夾,正常麼?而且還是不同的資料夾,大小都不同......... A:這是winxp 和2k3引入的 side by side assembley 用於解決不同版本的dll 的衝突的,這樣系統裡面可以存在2個版本或者更多的gdiplus 可以在Google上找一下這篇文章:How To Build and Service Isolated Applications and Side-by-Side Assemblies for Windows XP windows 2k系統這套機制不會起作用,可以使用任何一個gdiplus 最好使用當前所依賴的那個gdiplus Q: 在xp裡面搜出2個gdiplus.dll 看版本,一個是sp1,一個是sp2 xp版本是sp1的,是不是上次更新gdi什麼的弄出個新的來? 呃..system32和dllcache目錄都複製了 mspaint覆蓋後馬上自動又恢復成原來的了,沒提示 只好放別的目錄裡面,然後修改一下建立捷逕 A: 先dllcache ,後system32 ,注意拿掉安裝光碟,就是不讓win 都機會找到原版的文件 Q: 偶的2ksp4是先裝2k,然後打sp4包昇級上來的 dllcache目錄裡面沒有mspaint(複製到dllcache裡面的時候沒提示是否覆蓋) 搜尋了一下winnt目錄,發現ServicePackFiles目錄裡面也有mspaint,把這個給覆蓋掉就OK了 A: 是我疏漏了,沒有想到昇級sp4的,以為是整合安裝sp的呢 |
送花文章: 3,
|