2014-01-10 74 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