我目前处理的是非常大的图像(7-10mb),由于多种原因无法调整大小或压缩。
现在,我们的想法是在自定义ImageView中显示它们,使用户可以进行双击缩放,缩放缩放等。
我使用这个库来完成工作:https://github.com/MikeOrtiz/TouchImageView
我也尝试过其他库但其他所有库仍然很慢。有人可以给我一些指示/建议,使其更快(甚至编写我自己的C ++实现)?
我对所有这些“Matrix”,“flig”,“scale”的东西有点失落,我不知道应该触摸什么来加快速度。如果你也知道其他更快的库(或者如何使用自定义的Android实现,那真的很快),那就太好了。
答案 0 :(得分:5)
尝试一个名为openCV的库或在matlab中使用它,然后将代码移植到c / c ++中以进行图像增强
答案 1 :(得分:3)
您是否尝试过使用Ion库的DeepZoom功能?
https://www.youtube.com/watch?v=yIMltNEAKZY
如果您不想使用opengl,或者上述库不起作用,您也可以尝试使用http://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html类。也就是说,跟踪用户的“位置”(视口和缩放级别)并从主线程解码该区域,每次用户改变输入时将其推入画布。
答案 2 :(得分:2)
您可以尝试手动实施" mipmap" - 同一图像的不同尺寸,然后只使用最合适尺寸的图像进行显示....因此,当缩小时,您将操纵相对较小的图像(但仍将获得相同的图像的完整细节)放大时大的。)
答案 3 :(得分:2)
答案 4 :(得分:2)
解决问题的一种方法是使用WebView,它支持平移,捏缩放等。我认为图像质量可能是一个问题。
android-local-image-in-webview
android-add-image-to-webview-from-a-drawable
等。 您还可以动态生成和加载html
答案 5 :(得分:0)
在TouchImageView.java类中,DoubleTapZoom为ZOOM_TIME设置更低或更高的值
private class DoubleTapZoom implements Runnable {
......
private static final float ZOOM_TIME = 500 //(lower - faster)
......