如何获取缩放位图上的像素颜色值?
我正在通过此链接使用索尼爱立信教程的缩放和平移
http://blogs.sonyericsson.com/developerworld/2010/06/09/android-one-finger-zoom-tutorial-part-3/
以及当我使用位图时。 getPixel(x,y) 在图像的 ontouchevent 中。它给出不同的 RGB 颜色值。缩放位图后会出现同样的问题。我也尝试过按缩放因子划分 xy 坐标。它对我不起作用。
有人可以帮我解决这个问题吗?如何获取缩放位图上的颜色值?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
getPixel 正在处理您未缩放的位图。
我假设 X 和 Y 来自触摸事件并且与视图相关。
我在您的链接中看到该示例正在使用两个 Rect 对象调整大小。
我想你也是这么做的。
简单地将坐标除以缩放比例是行不通的,因为 X 和 Y 是相对于您的视图而不是 RectDst。
我通常使用 Matrix 对象进行缩放,因为它很容易复制、反转等......
例如,如果您的缩放是使用 Matrix 完成的,您将能够反转它,给它您的 X、Y 并获取相对于位图的原始坐标。
但无论如何,你有办法做到这一点,通过使用 2 个矩形计算矩阵:
我没有测试它,但它应该有效,或者至少可以帮助你找到解决方案。
getPixel is working on your unzoomed Bitmap.
I assume X and Y come from a touch event and are relative to the View.
I see in your link that the example is doing the resize using two Rect objects.
I assume that is is also how you did it.
Simply dividing your coordinates with the zoom ratio will not work because X and Y are relative to your view and not to the RectDst.
I generally use Matrix objects to do zooming because it is so easy to reproduce, invert, etc...
For exemple if your zoom had been done using Matrix you'll be able to invert it, give it your X,Y and get your original coordinates relative to your bitmap back.
But you've got a way to do it anyway, by calculating the Matrix using the 2 Rects:
I did not test it but it should work or at least help you find your solution.
Bitmap.getPixel(x,y) 得到该死的慢结果。
更喜欢
byteArry 返回图像的像素颜色。
Bitmap.getPixel(x,y) get damm slow result .
prefer
the
byteArry
will returns the pixels color of image.