2014-01-10 47 views
0

我正在與sencha拍照並將它們添加到商店的列表中。 我把照片在全分辨率(因爲我有後上傳到),並用這樣的TPL告訴他們:Phonegap 3 + Sencha Touch 2.3.1 +圖片圖片庫

<img src="{value}" width='120' height='120' /> 

和光電代碼:

var cameraOptions = { 
    quality: 100, 
    destinationType: Camera.DestinationType.FILE_URI, 
}; 

navigator.camera.getPicture(successCallback, failCallback, cameraOptions); 

當我更新列表它的圖像慢慢變成了,當我拍攝第3張照片時,應用程序開始崩潰...

我已經測試過,如果僅顯示列表中每張照片的標題,並且它完美地工作,我認爲問題出在在每張大照片的img標記中調整大小...

有沒有什麼辦法從照片中創建縮略圖,以便我在列表中顯示?或者我該如何解決這個問題?

謝謝!

+0

圖片觸摸列表讓我的應用變慢 –

+1

您是在iOS還是Android?如果質量設置爲50以上,則iOS被指出存在內存問題。您也可以嘗試設置目標寬度和高度。現在你擁有這些圖像的方式非常龐大,設置這些值可能會有所幫助。 –

+0

是的,但我需要他們的全分辨率,這是應用程序的想法,但我需要顯示他們作爲預覽列表...當我顯示預覽列表與大小x,x與4或5圖像應用程序崩潰!:( – Caipivara

回答

0

我已經通過使用此代碼創建在包含調整(縮略圖)圖像的一個base64字符串表示的圖像模型的縮略圖屬性解決它:在煎茶

var PREVIEW_WIDTH = 120; 
var PREVIEW_HEIGHT = 120; 

var img = new Image(); 
img.src = imageUri; 

img.onload = function() 
{ 
    var canvas = document.createElement("canvas"); 
    canvas.width = PREVIEW_WIDTH; 
    canvas.height = PREVIEW_HEIGHT; 

    var ctx = canvas.getContext("2d"); 
    ctx.drawImage(img, 0, 0, PREVIEW_WIDTH, PREVIEW_HEIGHT); 

    var thumbnail = canvas.toDataURL("image/" + _formatManager.getString()); 
    // thumbnail contain the base64 resized image 
}; 

Source