android - OpenGL 渲染器 : Bitmap too large to be uploaded into a texture in android titanium

标签 android camera titanium appcelerator-mobile

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

[WARN] : OpenGLRenderer: Bitmap too large to be uploaded into a texture (1840x3264, max=2048x2048)

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

当我将一张图片插入 ImageView 时,当我从相机拍摄或从图库中挑选图片时,就会发生这种情况。

最佳答案

这是因为不同的手机有不同数量的可用纹理内存,这取决于硬件和它们的 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;
    },
    ....
});

关于android - OpenGL 渲染器 : Bitmap too large to be uploaded into a texture in android titanium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22477508/

相关文章:

javascript - Appcelerator Titanium 或 JavaScript 的源代码审查和分析工具?

python - Google App Engine 作为移动应用程序的身份验证服务器

java - 当框出现在屏幕中间时更改框的背景颜色

android - getArgument() 返回 NULL

video - 在 Windows Phone 8 应用程序中录制视频时,如何从相机获取每一帧?

ios - 带有 UIImagePickerController iOS 的圆形裁剪器相机?

java - Libgdx第一人称视角控制

android - 标记非敏感数据,以防止从外部来源提交,而不是完全加密? (移动应用程序提交到服务器)

android - 如何在类里面成为一个普通的听众

android - 我可以使用钛来构建网络应用程序和移动应用程序吗?