2012-12-29 23 views
3

這是一個不使用css寬度/高度或attr寬度/高度的調整大小。我將jpg圖像發送回一個必須爲1024x768的服務器,但發佈的圖像可能是基於用戶交互的其他維度(外部加載)。正版jquery/javascript jpg圖片大小調整

如何調整,比方說,一個1124x800的JPG圖片TP 1024×768,這樣它實際上是調整,而不是僅僅標記了用於顯示其:attr或CSS值??????

這可以用畫布完成,還是我需要一個特殊的jquery插件??????任何幫助感激地收到。這是一個開源項目,所以我不尋找一個商業插件,如果這就是最新的需要。

+2

在Javascript中實現的JPEG重採樣器?嗯。我敢打賭,它會很慢。通常你會將這樣的工作從農場轉移到某個服務器上。 –

回答

5

是的,這可以通過<canvas>完成。

function resize(img, width, height) { 
    var canvas = document.createElement('canvas'); 
    var context = canvas.getContext('2d'); 

    canvas.width = width; 
    canvas.height = height; 

    context.drawImage(img, 0, 0, width, height); 

    img.src = canvas.toDataURL('image/png'); 
} 

我會發布JSFiddle,但它似乎好像他們的服務器已關閉。這是用法。

var image = document.getElementById('myImage'); 

resize(image, image.width * 0.75, image.height * 0.75); 

正如在評論中所說的那樣,然而對於較大圖像的瀏覽器而言,這是非常密集的。

注意:你只能用本地託管的圖像做到這一點。如果您嘗試傳入src來自不同域的圖像,您將收到SECURITY_ERR: DOM