问题标签 [android-image]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 在 android 应用程序中使用大量视频和图像
我想在我的 android 应用程序中使用视频。有 800 个视频(总大小 250MB),那么我将如何在 android 应用程序中使用它们?
与图像相同 3000 张图像 (50-60 MB)
如果我想使用上述总大小的图像和视频,我该怎么办?
android - 在Android中获取Bitmap的RGBValues
我在获取 Android 中位图的 RGB 值时遇到了一些问题……这就是我正在做的事情:
但是,颜色似乎与典型的 RGB 值不匹配。例如,一个白色像素将显示为 -1,而它的 RGB 值为 16777215。(我从该网站获取该值:http: //www.shodor.org/stella2java/rgbint.html)
还有大量的负值似乎不适合正常的 RGB 值。我的问题是,是否有一种方法可以转换为典型的 RGB 值,而不是 getPixels() 方法返回的 Android Color 整数。感谢您的帮助,如果您有任何问题,请告诉我。
android - android背景图片问题
我正在尝试将图像设置为背景。我编辑 xml 布局文件。但是当我将图像放在可绘制文件夹上时,它会在项目名称上出现错误。问题是什么?跟图片大小有关系吗?android可以运行的图像最大尺寸是多少?
android - 9patch 图像只有水平缩放
如何创建仅水平缩放的 9Patch 图像?我不希望它垂直缩放。我无法创建这样的 9 PNG。
我尝试了文章http://radleymarx.com/blog/simple-guide-to-9-patch/但他们的方法不起作用。当我跳过左侧指南时,它会在 Eclipse 中出现错误。
我正在尝试水平缩放此图像以创建标题栏。
android - 如何在android中使用base64发布大图?
目前我正在做一个需要在服务器数据库上发布数据的项目。在这里,我发布了name
, id
,image
等数据。
我想将图像作为二进制数据传递。为此,我将图像转换为 base64 字符串,然后 POST 数据,但由于图像分辨率或 HTTP 连接大小较大,我收到 413 错误代码,表明 URL 太大。
请问谁能给我解决方案?在这里,我给你我已经实现的代码。
价值观
做网络连接
这里的 HTTP 响应代码是 413,所以它告诉 URL 太大,不能 POST 图像。
android - Android以最有效的方式将图片上传到服务器
我需要将图像和其他数据(非常类似于带有附件的电子邮件)发送到服务器。我还需要以可靠的方式进行操作,以便在失败时重试等。
服务器是 WCF REST 服务器,我与它进行了许多其他通信(JSON),但刚刚得到了上传图像的新要求。
由于我使用 JSON 将数据发布到我的服务器 - 我在 Android 端使用 GSON 来序列化数据。
到目前为止,这是我实现它的方式(其他一切都以这种方式工作,但我只是从图像开始)
- 用户填写活动字段(文本数据)
- 用户通过相机意图拍摄一些照片。目前我只使用 1 个文件的图片
- 我从 SDCard 拍照,加载/调整大小 - 在 ImageView 上显示并存储在 byte[]
- 用户提交 - 我从 byte[] 获取所有数据以及图像并将其放入 Java 对象
- 调用 GSON 转换器并序列化对象
- 将对象保存到 SQLite
- AsyncTask 在 SQLite 中查找记录,打开游标并获取文本
- AsyncTask 创建 HttpConnection 并将文本数据发布到我的服务器。
- 结束
现在我的问题..显然在#3 - 我用我的字节数组“爆炸” ram。有时我什至觉得我的 Nexus S 变得迟钝。但是通过这样做 - 我避免用许多文件填充 SD 卡或应用程序文件夹。我拍照然后抓住它。下一张图片将覆盖上一张。
步骤#5 很慢。我没有在 GSON 上尝试自定义序列化程序,而是将字节数组序列化为 [1,-100,123,-12] 之类的东西,但我仍然可以使用 Base64 获得更小的大小。它会很慢。我最多可以有20张图片...
第6步没问题。但是对于一定的尺寸(我尝试了 300px 图像),我在 OpenCursor 的第 7 步中开始出现错误
所以,这整件事不是我喜欢的。理想情况下,我希望将所有数据单件上传到服务器。
我在想也许可以将带有时间戳的图像存储在 SD 卡上,并且只将它们的名称存储在 DB 中。比我在发送到服务器之前处理它们。如果成功,我会删除这些图像。这种逻辑会使 SQLite 模式更加复杂,但也许没有更好的方法?!
我想我正在寻找处理图像的最佳实践。如何以最少的内存/CPU使用率执行以下操作:
- 拍照片
- 显示缩略图
- 调整大小
- 发送到服务器
编辑1:
目前我正在研究将整个 shizang 作为多部分 MIME 消息上传的可能性。这需要在我的 Android 包中添加一些 JAR。此外,我不确定 Apache 代码加载图像和发送它们的效果如何(我想比我的代码更好) http://okandroidletsgo.wordpress.com/2011/05/30/android-to-wcf-streaming-多部分二进制图像/
而且我将不得不在 WCF 端解析所有这些,因为没有办法使用内置的 .NET 框架来完成。
http://antscode.blogspot.com/2009/11/parsing-multipart-form-data-in-wcf.html
如果您尝试过,请告诉我!
编辑2:
MIME 不好。没有意义,因为它使用 Base64 序列化二进制文件,这是同一件事..
android - 如何动态显示来自 sdcard 的单个图像
我已经完成了sdcard
动态显示所有图像的程序。但是现在,我想动态显示单个图像,sdcard
而不是显示所有图像。我的编码如下
然后适配器代码如下
}
android - 缩放 ImageView 的图像,同时将中心点保持在同一位置
我已将预缩放位图设置为 ImageView 的源。然后我ImageView
通过matrix.postTranslate(shiftX, shiftY)
.
现在我想放大/缩小图像,同时将中心保持ImageView
在比例之前的位图同一点。
如果我尝试用 放大图像matrix.postScale(zoom, zoom)
,我想要保持的点(蓝点)会移动到其他位置(紫点)。
我尝试了几种不同的方法将位图移回,但我无法让它正常工作。我知道初始位图大小、ImageView 大小、虚线标记的距离。试图计算所需的移位并在matrix.postTranslate(-zoomshiftX, -zoomshiftY)
之后使用,但它没有正确移位。
甚至发现,在 matrix.postScale() 函数和尝试 matrix.postTranslate(-zoomshiftX/zoom, -zoomshiftY/zoom) 之后,底层位图的像素数没有改变 - 但仍然没有运气。
我如何实现这样的缩放?
android - Android - 处理图像/相机 - 几个问题
我正在处理在 Android 上调整图像大小 - 有趣!这是我希望很小的问题:) 我正在使用相机意图拍照并将其保存在 SD 卡上。
有什么方法可以获得相机分辨率,所以我会知道图像的分辨率,并且每次转换时都不需要检查它?
分辨率是可能会改变的东西还是每个设备都是固定的?
所有图像都以“横向”格式保存吗?我的意思是他们总是“宽”而不是“高”?
如果我在屏幕上有 ImageView - 我怎么知道它需要正确填充的位图大小?我连续有 4 个 Imageviews - 所有的重量都相等,所以我想我需要想出屏幕宽度并适当调整位图的大小?
如果我需要将图像缩放到精确的宽度 - 这是否意味着我必须计算从 OldX 到 NewX 的“比率”,然后在调用 Bitmap.createScaledBitmap 之前将其应用于 OldY?
android - BitmapFactory decodeStream 成文件。或者如何在不杀死VM的情况下处理位图?
我在解码图像时遇到 OOM 错误。这条消息对我正在处理的钱是正确的:BitmapFactory OOM 让我发疯
我想我知道什么可以解决我的问题,但不知道该怎么做。现在当我调整图像大小时 - 我得到这样的位图:
而且我需要将其保存回文件:
如您所见 - 我的目标是减少存储中的图像。
现在 - 当我操作大位图时 - 我将大文件加载到内存中,这会增加堆大小,然后在下一次尝试时 - 我得到 OOM 异常,因为本机堆中没有足够的内存。
所以,我想从 BitmapFactory 获取流并以某种方式将其传递给 FileStream 进行存储。如果我想要大图像,那将消除 VM 堆问题。
有人知道怎么做吗?