OpenGLRenderer:位图太大,无法上传到android钛中的纹理

时间:2014-03-18 11:07:17

标签: android camera titanium appcelerator-mobile

在Titanium appcelerator中,当我捕获图像并在ImageView中显示时,图像未显示,而是显示下面的警告。

  

[警告]:OpenGLRenderer:位图太大而无法上传到纹理中(1840x3264,max = 2048x2048)

如何解决这个问题? 虽然在平板电脑中它工作正常,但在高分辨率设备中它不起作用。

当我从相机拍摄或从画廊中挑选时将图像插入ImageView时,就会发生这种情况。

1 个答案:

答案 0 :(得分:3)

这是因为不同的手机具有不同的纹理内存量,具体取决于硬件及其OpenGL版本,此特定值为GL_MAX_TEXTURE_SIZE,可以在每个手机here和其他地方查找。

要解决此问题,请将图像转换为blob,然后使用内置函数imageAsResized调整其大小,在拍照后的成功回调中。

Ti.Media.showCamera({
    ....
    success : function(e) {
        // Resized to a size that most phones should support
        var resizedImage = e.media.imageAsResized(1024, 1024);
        // Set the image view with the resized image
        imageView.image = resizedImage;
    },
    ....
});