Archive

文章標籤 ‘縮圖’

網頁圖片比例縮小(CSS,javascript)

2008年12月24日 2 則評論

目前在開發一些網路應用的程式,都要提供上傳圖片功能,
但教育使用者上傳前縮圖至理想的尺寸及限制容量大小實在是一件很不容易的事

所以與其要教育使用者,還是自己變通一下吧
限制容量就不在本文的範圍啦,直接跳重點如何在顯示時等比例縮小圖片

以HTML來說,如果限制的圖的長寬,當圖片大於此長寬而且又非和限制的等比例時就會造成圖片變形
此時,我們透過css或是javascript進行等比例縮小,以CSS的作法,如下設定

<style type=”text/css” >
.album-pic img {
vertical-align: middle;
max-width:100px;   /* FF IE7 */
max-height:100px; /* FF IE7 */
_width:expression(this.width > 100 && this.width > this.height ? 100: auto); /* IE6 */
_height:expression(this.height > 100 ? 100 : auto); /* IE6 */
}
</style>

這個設定是支援CSS3的,目前慣用的瀏覽器都有支援,但IE6及IE7和Firefox的寫法不一樣,為求呈現效果一致所以都寫上去求平安囉!!
使用時只要加上這個css 就可以啦,使用方式如下:

<div class=”album-pic“>
  <img
src=”pic/demo.jpg” />
</div>

再來介紹用Javascript該如何調整,首頁先說明縮圖的function:

<script language=”javascript”>
var flag=false; 
function MyImage(Img){ 
   var image=new Image(); 
   image.src=Img.src; 
   width=236;//預先設置的所期望的寬的值
   height=170;//預先設置的所期望的高的值
   if(image.width>width||image.height>height){//現有圖片只有寬或高超了預設值就進行js控制
     w=image.width/width;
     h=image.height/height;
       if(w>h){//比值比較大==>寬比高大
           Img.width=width; //定下寬度為width的寬度
           Img.height=image.height/w; //以下為計算高度
       }else{//高比寬大
           Img.height=height; //定下寬度為height高度
           Img.width=image.width/h; //以下為計算高度
       }
   }

</script>

使用時只要照下面用法即可


<img src='/demo.jpg'
onload='javascript:MyImage(this);' border='0'>

雖然都寫上,但建議使用時還是透過css會好一點,因為程式碼精簡外,效能也是css的比較好啦!!

參考資料:
http://www.phpip.com/design/2008/0905/css_10682.html
http://bbs.d8sun.com.cn/thread-1455-1-10.html

Categories: WebDesign Tags: , ,

小畫家縮圖教學-當什麼都沒有時,有能用的就要偷笑了..

2008年10月6日 尚無評論
目前數位相機已經非常普遍
基本上已經到了人手一機的地步
就算沒有相機,手機有照相功能也非常普遍了
所以照片上傳到網路分享已成為大部份人都會做的事情啦
寫寫網誌、文章或把自己出遊的照片與其它人分享
接下來就是要教大家如何利用小畫家把照片縮小size
為何什麼要縮小呢? 大致可歸納有二

1.目前網路的頻寬及空間都是有限的,所以如果你上傳很大的照片檔案,除了你要準備很大的空間存放這些檔案外,相對的別人在瀏覽時也需要很大的頻寬才能有基本的瀏覽品質,不然就是要等一陣子讓照片慢慢傳囉!!

2.目前一般市面主流的螢幕解析度為1024*768,有些上了年紀的人因為字太小還習慣看800*600,而目前市面上最大的解析度也差不多2560*1600左右(可能還有更大的啦,就算沒有 過沒幾天就有啦…所以不再此深入啦)。 而目前一般市面上的現行推的數位相機畫素都已經達到800萬畫素以上,一千萬畫素已經算是主流,以800萬畫素為例,照片的size 大約有3456*2304(這也要看各家廠商的作法而定),大家應該可以看出來照片的size 遠遠大於我們的螢幕,所以放那麼大張到網路上幹嘛!!  (在此額外一提,數位相機在商人炒作之下,讓人誤以為畫素愈高愈好,事實上不然,因為一般我們最常洗出照片size 為4*6,而這樣的size只需要二百萬畫素就夠用了, 800萬畫素以上大約可以洗出A4 size的而不失真,相信可能有很多人至今都還沒洗過這麼大張的吧..呵!!   所以不用太追求畫素啦)

有了上述的解說,相信大家應該都能瞭解了吧,好~再來就教大家如何利用小畫家來縮圖,
為何挑小畫家來說明呢?  因為目前Windows的普及率非常高,而小畫家是Windows 預設就有安裝的小程式,所以就算在外頭網咖或是朋友家,一定都有小畫家,所以小弟先挑小畫家來說明

本文章是使用Windows Vista作業系統的小畫家,針對800萬畫素的照片(約3.64MB左右的儲放空間)進行縮圖,小弟去看過應該從Windows XP 之後的各版本 小畫家的各版本功能應該都差不多
所以大家應該都能適用

Step 1. 請在開始>程式集>附屬應用程式 中,開啟小畫家程式

Step 2. 開啟小畫家後,請在上方功能列的 檔案>開啟舊檔 中選擇你要縮照片的檔案 (還有另一個方式,就是在檔案總管用拖拉照片檔的方式,拖到小畫家即可

Step 3.此時你應該會看到,照片會用原比例顯示應該你的螢幕和我一樣只能看到照片的一角而已吧,再來就執行小畫家上方功能列中 的影像>調整大小/扭曲

Step 4.再來就要輸入欲縮小的比例,一般我們如果是要放在部落格網誌或自己在討論區的文章裡,建議照片大小是在 640*480 以下,一般大家最常看到的size 是320*200 左右,因為這樣才不會把網頁撐開;所以用800萬畫素的照片為例,我們大約要以19%~20%的比例去縮圖才會有640左右;如果你是要放在網路上,一般大家最常用的是 1024*768 就約用30%左右的比例去縮圖即可(請再自行換算),注意長寬比都要是相同的比例才不會變形喔!


Step 5.最後,也是要最小心的就是到上方功能列 檔案>另存新檔的方式 並選擇jpeg格式進行存檔,要特別注意喔~別直接存檔了以免 你的圖照片檔案被改變了…

好!我們來看看縮圖後的儲放空間為何?
很驚人吧! 一張800萬畫素約3.64MB左右的照片,縮成640*480左右時只剩下 不到80K的空間大小,如果是1024*768 也僅需要140K左右,各位可以試試看效果吧!!


最後,小畫家功能只有最陽春版的圖形編修功能,不能批次處理也不能調整jpeg的壓縮比例,不過至少能處理基本的圖形編修功能,小弟印象中 Windows 98的小畫家好像還沒有這個功能呢!!  呵~~所以在沒有其它工具時,還是要靠小畫家才行的!!
Categories: 小技巧 Tags: , ,