2013年9月18日 星期三

如何快速縮小相片圖檔

拜科技發展迅速所賜,數位相機的成像數(畫數, pixel)越來越高,目前市面上的相機的畫數幾乎都在千萬上下。以目前主流的一千二百萬畫數數位相機為例,其意思是一張相片是由 4256X2848=12121088 pixel  組合而成。

接下來我們要看另外一個名詞 DPI,意思是每一英吋的畫面是由幾個點(dot)所組成。以筆者的筆記型電腦為例:螢幕尺寸為 16 吋,解析度為 1366X768,可視區域為 35.4cm X 19.9cm。將解析度除以可視區域換算成英吋(一英吋約為 2.54cm)就可以得到螢幕的 DPI 值,以此範例而言其計算方式為 1366÷(35.4÷2.54)≒98DPI 或者 768÷(19.9÷2.54)≒98DPI。您也可以從桌面--滑鼠按右鍵--內容--設定值--進階就可以看到文字的 DPI 值,雖然文字解析度和畫面解析度不相等但很接近,當螢幕解析度調高時通常也會調整字型解析度,這樣文字看起來才不會變形或變醜。

通常螢幕的解析度約為 72DPI~192DPI,而列印的解析度約為 300DPI,假設我們要拍攝一張可以沖洗成 4 吋 X6 吋的相片,其拍攝的畫素為何?其計算方式為 4吋X 300DPI X 6吋 X300DPI = 2160000(216 萬畫素) ,意思是只要利用 216 萬畫素的數位相機就可以了。那螢幕呢?通常電腦螢幕的解析度比較少超過 1920X1080 ,所以只要 1920X1080 = 2073600(207 萬畫素)就可以顯示到全螢幕。

接下來要講的就是畫素和記憶體的關係,一個畫素佔一個位元(bit) ,1 個 bit 只能顯示『黑』或『白』二種顏色,如果要顯示256 色則需要 8 個 bit(2的8次方等於256) ,要顯示『全彩』  (也就是 1677 萬色)則需要 24 個 bit(2的24次方),因此一張 1200 萬畫素的相片理論上在電腦中處理要耗用掉 4256X2848X24=290906112 bits= 36363264 bytes= 35511  KB≒35MB 的記憶體資源。

到這個地方您或許會有個疑問?我的相片檔案並沒有那麼大。那是因為相片檔要儲存之前有經過壓縮的關係,相片檔案大小並非耗用記憶體的大小,儲存時會壓縮圖檔以減少佔用空間,處理時就必須解壓縮開來。這就像您要寄電子郵件給別人時,如果有較大的附加檔案也會先壓縮再寄出,當別人收到時會再解壓縮的意思是一樣的。

上面講了一堆到底要做什麼呢?那就是經常看到使用者在編輯簡報檔或報告時,往往直接將相片檔複製並貼到文件中,如果您電腦的記憶體比較少或者一份文件中有較多相片就會造成檔案開啟失敗或者開啟很慢。因為電腦必須耗用許多資源去處理圖檔(從上一段的敘述可以得知,一張 1200 萬畫素的相片可能要耗用35MB 的記憶體) 。

如何避免開啟失敗或很慢的情形發生呢?那就是在將相片檔放到文件中之前必須先降低相片的畫素,因為簡報檔或報告文件如果只是在螢幕中顯示,或者只是印成 A4 尺寸的文件,並不需要太多的畫素。例如一張 3678X2736的相片降低成 960X720 之後,在螢幕上看起來都是一樣的,肉眼幾乎看不出區別,可是檔案大小和耗用的記憶體資源就有顯著的差異。

要如何縮減相片的大小呢?有許多種方法,例如使用小畫家或者在 Word 或Powerpoint 存檔時勾選儲存縮圖,不過在這裡筆者要介紹的是一個免費工具—Image Resizer for Windows。您只要到 http://imageresizer.codeplex.com/  網站就可以下載該套軟體,下載完成後直接安裝就可以了(XP/Win7 都可以使用)。

安裝完成之後,您只要在欲縮小的相片按滑鼠右鍵 Resize Picture 接著會出現要縮小的範圍選單,目前預設的有小(854x480)、中(1366x768)  、大(1920x1080)、以及行動裝置(320x480)四種尺寸,當然您也可依照需求選擇自訂
(Custom)尺寸。決定尺寸之後點選 Resize 按鈕就完成了。 Image Resizer for Windows 會在相圖目錄下產生新的檔案。

當您要做簡報或報告必須貼上相片時,請記得先將相片檔的尺寸縮小再放入文件中,這樣不僅可以減少檔案大小,也可以加速檔案處理速度。亦或者當您要上傳相片到網路上時,也可以先將相片縮小,這樣在傳檔時速度也會更快喔。

2013年9月17日 星期二

Windows 7 的『裝置和印表機』無法顯示任何項目

狀況:點開裝置管理員時一直都是空白的,沒有顯示任何裝置。

原因:停用藍牙支援服務 (Bluetooth Support Service) 會造成裝置和印表機無法顯示

解決方法:只要把 Bluetooth Support Service 啟動,並設定成自動啟動,裝置和印表機功能就可以正常運作了。

XP 控制台的印表機內容沒有圖示

解決方法:

1. 將 C:\Windows\System32\dllcache\printui.dll 更名為 printui.old
2. 從 C:\Windows\ServicePackFiles\i386\printui.dll 複製到 C:\Windows\System32\dllcache\
3. 刪除 C:\Windows\System32\printui.dll
4. 重新啟動電腦

2013年9月15日 星期日

免安裝軟體,一次登入多個電子郵件帳號的方法

GSN(政府網際服務網)最近公告了一則訊息:

為提升GSN電子郵件服務系統(ms1.gsn.gov.tw)
資源效率及郵件安全GSN電子郵件信箱帳號
若連續三個月以上無使用紀錄
將進行停權並於102/8/15日起將不受理覆裝申請

意思就是說,如果您當初是申請GSN的電子郵件信箱,如果超過三個月沒有登入,該信箱就會被停用。

這會發生一種狀況,假設某機關是使用GSN電子郵件服務做為公務信箱,當某些人離職或調動時,如果該職務超過三個月還沒有派任,或者是沒有開啟電子郵件,則電子信箱就會被停用,由於GSN不受理覆裝申請,機關的可用電子郵件信箱也就會越來越少。

解決的方法是至少每三個月要登入一次這些暫時閒置的電子郵件信箱,如果閒置的信箱只有一、二個,那用人工手動去登入就好,如果有比較多的閒置信箱時,該如何處理?底下是我的作法:

1. 建立 vbs 指令檔,內容如下(請依實際需求修改郵件主機、帳號及密碼),並將檔名存為『帳號.vbs』(例如帳號是 user1 ,就存檔成 user1.vbs ):

Set obj = CreateObject("WScript.Shell")
obj.run"cmd"
WScript.Sleep 1000  '等候一秒鐘

obj.SendKeys"telnet ms1.gsn.gov.tw 110"  'telnet 主機 port號
obj.SendKeys("{Enter}")
WScript.Sleep 1000

obj.SendKeys"user 帳號"  'user 帳號
obj.SendKeys("{Enter}")
WScript.Sleep 1000

obj.SendKeys"pass 密碼"  'pass 密碼
obj.SendKeys("{Enter}")
WScript.Sleep 1000

obj.SendKeys"quit"  '退出
obj.SendKeys("{Enter}")

2. 存檔完成後就可以直接執行 vbs 檔案,來測試登入郵件主機

3. 為每個閒置帳號建立 vbs 指令檔,例如有 5 組閒置帳號分別為 user1, user2, user3, user4, user5,則需產生五個 vbs檔

4. 建立一個 check.bat 的批次檔,內容如下:
for %%N in (user1 user2 user3 user4 user5) do wscript %%N.vbs

5. 執行 check.bat,此時系統會自動執行登入此 5 組帳號

6. 利用 Windows 內建的工作排程器,排定每個月執行一次 check.bat

透過以上的方法,就可以不利用第三方的軟體,一次登入多組電子郵件帳號