如何将图像转换为纹身? [关闭]

2024-06-18

我后来正在使用纹身应用程序,因为我需要将图像(从相机拍摄或从图库中选择)转换为纹身......

我的要求如下

enter image description here I found a sample code from github https://github.com/DrewDahlman/ImageFilter/tree/master/Android/project

它用于图像过滤..

我不知道将图像转换为纹身的正确过程是否正确

如果有人知道 Android 上的这个纹身,请建议我,我用谷歌搜索了很多

提前致谢..


你需要一个差异过滤器:

1)计算水平差异(这里有垂直线段)

2)计算垂直差异(此处为水平线段)

3)对两张地图进行“或”运算,找到轮廓

4) 重新创建 Bitmap 对象(如果您愿意)

类似(已编辑):

int[] pixels;
int width = yourbitmap.getWidth();
int height = yourbitmap.getHeight();
yourbitmap.getPixels(pixels, 0, width, 0, 0, width, height);

// transform grayscale
int[] image = new int[width*height];
for (int y=0; y<height; y++)
    for (int x=0; x<width; x++)
    {
        int pixel = image[y*width + x];
        image[y*width + x] = (Color.red(pixel) + Color.green(pixel) + Color.blue(pixel))/3;
    }

// calculate diff_x (vertical segments)
int[] dx = new int[width*height];

for (int y=0; y<height; y++)
    for (int x=0; x<width; x++)
        dx[y*width + x] = (x==0 || y== 0 ? 0 : Math.abs(image[y*width + x] - image[y*width + x-1]));

// calculate diff_y (horizontal segments)
int[] dy = new int[width*height];

for (int y=0; y<height; y++)
    for (int x=0; x<width; x++)
        dy[y*width + x] = (x==0 || y== 0 ? 0 : Math.abs(image[y*width+x] - image[(y-1)*width+x])); 


// when the color intensity is higher than THRESHOLD, accept segment
// you'll want a slider to change THRESHOLD values
bool[] result = new bool[width*height];
const int THRESHOLD = 60; // adjust this value

for (int y=0; y<height; y++)
    for (int x=0; x<width; x++)
        result[y*width + x] = (dx[y*width + x] > THRESHOLD || dy[y*width + x] > THRESHOLD);

Bitmap result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
for (int y=0; y<height; y++)
    for (int x=0; x<width; x++)
               result.setPixel(x, y, result[y*width+x]? Color.Black : Color.White);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将图像转换为纹身? [关闭] 的相关文章

  • 离线安装 android 很困难[已过时]

    我是非洲的一名学生 在我们的土地上 实际上存在缓慢且昂贵的互联网连接 这就是为什么每当我们听到 在线存储库 安装软件方法这个词时我们都会感到恐惧 该死 这通常意味着你必须去别处寻找 问题 如果没有将 Eclipse 连接到互联网 我无法安装
  • 如何在preferenceActivity中设置导航抽屉

    在我的应用程序中 我的每个活动都带有抽屉 但是当我在我的首选项活动中设置抽屉时 我的活动工作正常 但抽屉没有出现 这是我的代码 public class SettingActivity extends PreferenceActivity
  • Android:删除整个数据库

    我想删除由我的应用程序创建的完整数据库 你知道有什么adb命令或者android语句可以做到这一点吗 您可以运行命令 adb s emulator 5554 shell or whatever port you use cd data da
  • 是否针对各种屏幕尺寸建议修改 dp 大小而不是像素?

    比如说 对于屏幕A 240X320 ldpi 和屏幕B 720X1280 xhdpi 上的ImageButton 是否建议在各个屏幕的每个唯一布局资源文件中手动更改其dp 布局宽度和高度 大小 或者 为图像的每个 dpi 大小创建缩放的九块
  • Android 中 Facebook 和 Google+ 登录的 onActivityResult 代码

    Android 中登录的 Facebook API 代码很简单 方法如下活动结果 is protected void onActivityResult int requestCode int resultCode Intent data s
  • Facebook Like 按钮重定向到 Android 中的 Facebook 网站

    我正在开发类似 facebook 的按钮来与我的应用程序集成 这是从开发人员 facebook com 复制的 html 代码 div div
  • Android 在 Nexus 设备上隐藏软键

    我想在用户启动我的应用程序时隐藏软键栏 主页 后退 菜单 我尝试使用 getWindow getDecorView setSystemUiVisibility View SYSTEM UI FLAG HIDE NAVIGATION 但不幸的
  • 更改Android TabWidget底部栏颜色

    如何更改 TabWidget 底部栏的颜色 我已经成功更改了选项卡背景颜色 但底部栏仍然是灰色 橙色 并且我在 Android 文档和源代码中找不到与此相关的任何信息 谢谢 See 启用 禁用此行 tabHost getTabWidget
  • 如何在 Android 上将 ISO 8601 字符串解析为 Java 日期 [重复]

    这个问题在这里已经有答案了 我正在 Android 上创建一个与服务器通信的应用程序 该服务器给我返回了一个ISO 8601 http en wikipedia org wiki ISO 8601日期字符串 如下所示 2014 11 21
  • Android SQLite 查询被 Android Studio 标记为错误

    在我的一个 Android 应用程序中 我使用了一些SQLite自从我更新到以来开始出现问题的查询Android Studio 3 0 尽管我可以编译并运行该应用程序 但它们被标记为错误 这些是查询 db execSQL INSERT IN
  • OpenGL ES 2.0 只绘制一次对象

    首先我要说的是 很抱歉今天问了这么多问题 所以 我有一个圈子的课程 我有一个包含 3 个圆形实例的数组列表 每个实例都有不同的 x 坐标来绘制 不管出于什么原因 OpenGL ES 2 0 只绘制其中之一 尽管我调用所有这些来绘制 我检查了
  • 是否可以检测Android应用程序卸载?

    我的应用程序使用 Google 的 C2DM 推送通知 来通知用户朋友的新活动 一旦他们安装了应用程序 我就会向 C2DM 服务器注册设备并存储用户的电话号码 所以我知道用户正在使用我的应用程序 我可以向他 她发送推送通知 但是 如果用户卸
  • 是否可以在没有 SDK 的情况下编写 Android 应用程序?

    只是想知道 由于 Android 应用程序是 Java 程序 是否有可能在不使用 SDK 的情况下完全从头开始编写一个应用程序 如果不是 那为什么不呢 不 Android 应用程序是用 Java 编写的 但仅包含标准 Java API 的一
  • W/Firestore:[CustomClassMapper]:Android 类没有设置器/字段

    我试图使用 Recyclerview 从 Documents 类加载数据 但 logcat 上出现错误 W Firestore 21 1 1 CustomClassMapper No setter field for Document Na
  • 在 Jetpack compose 中使用 ModalDrawer 从右向左打开导航抽屉

    我一直在尝试在 Jetpack compose 中实现导航抽屉 以下代码显示了一种简单的方法 Composable fun ModalDrawerSample val drawerState rememberDrawerState Draw
  • Android 堆栈跟踪显示生产 Firebase crashlytics 中的测试代码

    该应用程序的 Play 商店版本的 Firebase crashlytics 中报告了该异常 当用户进入启动活动时会发生这种情况 任何帮助 将不胜感激 谢谢 没有其他可用的堆栈跟踪有助于跟踪代码发生的位置 Fatal Exception j
  • 带图标的 Android ContextMenu 选项

    Hi All 我有一个简单的问题 是否可以将带有图标的菜单项添加到上下文菜单中 我搜索过这个问题 发现这是不可能的 但是在 Android 设备的主屏幕中 当我长按时 会显示 添加到主屏幕 上下文菜单 其中包含带有文本的菜单项和图标 所以我
  • PopupWindow 在 Android API 28 的自定义键盘上被剪切

    我做了一个定制键盘 当您长按某个键时 会出现PopupWindow在按键上方显示一些额外的选项 问题在于 在 API 28 中 此弹出窗口被剪切 甚至顶行完全隐藏 我已经为 API with https stackoverflow com
  • 如何从双 SIM 卡设备获取两个电话号码?

    我知道如何获取用户的电话号码 但假设用户的手机是双 SIM 卡 有什么办法可以得到两个电话号码吗 目前我只能获取有效的电话号码 如果电话号码确实存储在SIM卡中 那么您可以使用subscriptionmanager API https de
  • 刷新 ArrayAdapter onResume [notifyDataSetChanged() 不起作用]

    我正在使用片段创建一个联系人列表应用程序 其中一个片段是联系人列表中的姓名列表 另一个是其余详细信息 这是显示名称列表的类 public class MyListFragment extends ListFragment private C

随机推荐