android – 创建一个新的位图并在其中绘制新像素

android – 创建一个新的位图并在其中绘制新像素,第1张

概述我正在尝试创建一个应用程序,它将通过editText指定两张图片,比较两个图像上每个像素的颜色,并创建一个新图片(位图)(可以保存到SD卡),其中包含两张原始照片. 我在创建这个新位图时遇到了问题.我怎样才能实现目标?我真的不知道如何做到这一点,我先创建新的位图,然后写入它,或者先得到差异,然后从中绘制一个位图?图片大约是. 300×300像素. 这段代码只是我的头脑而未经测试,但它应该让你走在正 我正在尝试创建一个应用程序,它将通过editText指定两张图片,比较两个图像上每个像素的颜色,并创建一个新图片(位图)(可以保存到SD卡),其中包含两张原始照片.

我在创建这个新位图时遇到了问题.我怎样才能实现目标?我真的不知道如何做到这一点,我先创建新的位图,然后写入它,或者先得到差异,然后从中绘制一个位图?图片大约是. 300×300像素.

解决方法 这段代码只是我的头脑而未经测试,但它应该让你走在正确的轨道上.
final int w1 = b1.getWIDth();final int w2 = b2.getWIDth();final int h1 = b1.getHeight();final int h2 = b2.getHeight();final int w = Math.max(w1,w2);final int h = Math.max(h2,h2);Bitmap compare = Bitmap.createBitmap(w,h,Config.ARGB_8888);int color1,color2,a,r,g,b;for (int x = 0; x < w; x++) {    for (int y = 0; y < h; y++) {        if (x < w1 && y < h1) {            color1 = b1.getPixel(x,y);        } else {            color1 = color.BLACK;        }        if (x < w2 && y < h2) {            color2 = b2.getPixel(x,y);        } else {            color2 = color.BLACK;        }        a = Math.abs(color.Alpha(color1) - color.Alpha(color2));        r = Math.abs(color.red(color1) - color.red(color2));        g = Math.abs(color.green(color1) - color.green(color2));        b = Math.abs(color.blue(color1) - color.blue(color1));        compare.setPixel(x,y,color.argb(a,b));    }}b1.recycle();b2.recycle();
总结

以上是内存溢出为你收集整理的android – 创建一个新的位图并在其中绘制新像素全部内容,希望文章能够帮你解决android – 创建一个新的位图并在其中绘制新像素所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1136790.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存