问题标签 [drawbitmap]
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 - SurfaceView drawBitmap耗时太长,最长耗时200ms
我正在使用 Surface 从 JNI 显示位图,以显示视频,这是我的代码:
我去计算每个方法花费的时间,我发现方法
不知道问题出在哪里,这么久了下次drawBitmap怎么办
android - Canvas.DrawBitmap 持有对位图的引用
在以下函数中:
bmp 是常规图像。
- 我正在画布上绘制位图。
- 在下一个动画帧 + 1 秒时,我将位图的内容更改为蓝色。
- 我不再画位图了。
结果是蓝屏。
这是否意味着画布正在存储对位图的引用?
java - 如何在Android中显示drawBitmap
我正在开发和 Android 应用程序,但我对我的项目的可行性有些怀疑。
我必须实现由显示图像的 ImageView 组成的自定义布局,特别是 VectorDrawable。
重叠 ImageView 有一个 SurfaceView :
- 捕捉触摸的每一个坐标;
- 每次触摸屏幕时都绘制一个位图(在某个位置)。
目的是显示背景图像并将其用作参考,每次用户触摸屏幕时,必须在 SurfaceView 上插入一个标记,该技术允许模拟在图像上插入标记。
问题是:
还有其他更好的方法可以做到这一点吗?我已经实现了,这个想法有效,但是我对 SurfaView 有一些限制(例如我不能将它插入到 ScrollView 中)。
最后:
考虑到目前的推理,假设有一个显示 VectorDrawable 的 ImageView,是否可以创建一个放大和缩小图像的函数(VectorDrawable)?
ps我很抱歉提出了两个问题但整体密切相关,我认为打开两个线程是愚蠢的
android - 画布上的高 dpi 图像绘制性能问题 (android)
我使用 AsyncTask 下载具有以下属性的图像,然后使用此url中的逻辑调整大小和缩小样本。此外,将 ARGB_8888 配置中的图像加载到内存中(图像是 jpg 文件)。
当我将此图像分割成小图像并将这些片段绘制到画布上时,drawbitmap() 非常慢。
问题
- 是 600 dpi 的问题吗?
- 下采样不负责 dpi 缩放吗?
- 在手机和平板电脑上运行的应用程序的最佳 dpi 是多少。
java - 每像素 16 位灰度位图
从我的相机,我得到一个字节数组。每两个字节(数组的两个元素)定义一个像素。如果我理解正确的话,目前大多数设备只支持 256 种灰度。所以,对于我的形象,我只需要 MSB。问题是这是一个流式视频,并且为由每秒字节组成的位图创建一个新数组需要很长时间。是否可以使用某些类输出“降级”图片(16 位 -> 8 位)?
编辑:如果有类可以为每像素 16 位的灰度创建位图,这对我来说也很有趣
actionscript-3 - 在 Adobe Animate 中从矢量保存高分辨率位图
有没有办法让玩家保存游戏的高分辨率图像,同时仍然保持所有效果?例如,我将发光滤镜设置为 2px。当我使用常规的 drawBitmap 时,一切都是像素化的,并且过滤器看起来不太好。所以我开始将影片剪辑放大到两倍大小,然后创建一个两倍大小的位图并保存。但问题是过滤效果被缩小了。例如,如果图像的高度从 400 像素变为 800 像素,则 2 像素滤镜效果现在看起来只有一半大小并且会扭曲所有内容。
我知道这一定是可能的,因为例如,使用全屏功能已经做到了……它将所有内容放大到漂亮的高分辨率,同时保持所有效果相互关联。如何以节省图像的能力捕捉这种效果?(目前使用 jpegencoder)
java - 关于性能和绘制位图
一开始我不得不说我正在自学java,可能会犯一个有史以来最愚蠢的错误......
在我的 2d 游戏中绘制位图时,我遇到了 FPS 下降的问题。
我的游戏地图由 100x100 像素的瓷砖组成,每个瓷砖都有一些表面图形,可能还有其他东西(如树、岩石或其他东西)。
我有两种主要的绘图方法。两者看起来很相似。首先是绘制地图,其次是地图上的所有内容(树木等)。
这是一个代码。我正在限制在此方法中要绘制的内容。
然后我打电话:
当我将“视觉”限制为每个方向 3 个方格(绘制大约 60 个图块)时,FPS 为 60。一旦我摆脱了这个限制(要绘制整个屏幕 - 大约 250 个图块),FPS 就会下降到 27-30,这使游戏无法玩。
这是正常行为吗?Java有那么有限吗?
或者只是也许我在这里犯了一个错误?
完整代码可在此处查看(如果有人愿意检查):
有人告诉我,有了这么多图形,我应该已经使用了一些 OpenGL,并建议我学习 LibGDX。但对我来说,纯java更优雅:)