- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有人可以向我推荐一种快速的颜色飞溅效果方法或库吗?例如,我选择了一种颜色,照片中除了我选择的颜色之外的所有颜色都会去饱和。
我试过使用逐像素颜色检查然后替换颜色,但对于大图像来说太慢了。
int width = originalImage.getWidth();
int height = originalImage.getHeight();
int[] pixels = new int[width * height];
originalImage.getPixels(pixels, 0, width, 0, 0, width, height);
for (int x = 0; x < pixels.length; ++x) {
pixels[x] = Distance(pixels[x], fromColor) < 4 ? targetColor : pixels[x];
}
Bitmap newImage = Bitmap.createBitmap(width, height, originalImage.getConfig());
newImage.setPixels(pixels, 0, width, 0, 0, width, height);
public int Distance(int a, int b) {
return Math.abs(Color.red(a) - Color.red(b)) + Math.abs(Color.green(a) -
Color.green(b)) + Math.abs(Color.blue(a) - Color.blue(b));
}
编辑:
最佳答案
您可以尝试遍历可能的颜色 RGB
值并准备仅包含那些不应包含的颜色值的HashSet
去饱和。好像应该不会有很多值吧。
之后您将能够检查颜色是否应该去饱和。因此,对于新的给定颜色,您需要进行相当长的预计算,但转换照片的代码会变得更快。
它可以这样实现(还没有在Android
下测试过,只是一些Java
伪代码来展示这个想法):
// precalculation
Set<Color> keptColors = new HashSet<Color>();
final int MAX_DISTANCE = 4;
for (int r=red(fromColor)-MAX_DISTANCE; r<=red(fromColor)+MAX_DISTANCE; r++) {
for (int g=green(fromColor)-MAX_DISTANCE; g<=green(fromColor)+MAX_DISTANCE; g++) {
for (int b=blue(fromColor)-MAX_DISTANCE; b<=blue(fromColor)+MAX_DISTANCE; b++) {
if (Distance(rgb(r,g,b)), fromColor) < MAX_DISTANCE {
keptColors.add(rgb(r,g,b));
}
}
}
}
...
// in you photo processing code
keptColors.contains(pixels[x]) ? pixels[x] : targetColor;
关于安卓色彩飞溅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49549808/
我有一个连接到 firebase (firestore) 的 flutter 应用。 当用户打开应用程序时,我会检查他是用户类型 1 还是用户类型 2。+ 从网络等加载图像。 但是完成所有这些事情可能
我有一个 flutter 的 ListTile,但我似乎无法弄清楚如何使飞溅/波纹效果适合边框。我的边框是圆角的,但飞溅只是一个没有圆形边框的普通矩形,如下图所示。 ListTile 下面是 List
我在启动 Activity 中使用了数据库。但是每次启动我的应用程序所花费的时间都比上一次启动时间长。请帮助我查询。 private CreateDatabase db; @Override prot
我像这样搜索时写了一个启动 Activity public class SplashActivity extends Activity{ private Utility utility; privat
在我的应用程序启动时,出现大约两秒钟的白屏。在我搜索它之后,我发现那是因为布局繁重。我想知道是否可以用自定义启动画面替换那个白屏。 最佳答案 如果您希望使用启动画面是因为您希望用户在加载时看到某些内容
我正在使用 Splash 2.0.2 + Scrapy 1.0.5 + Scrapyjs 0.1.1,但我仍然无法通过点击渲染 javascript。这是一个示例网址 https://olx.pt/a
我正在尝试制作一个 paper.js 示例,但我的问题是我不知道如何在没有 的情况下使其工作。该脚本有效,但我想将 js 与 html 分开。 jsFiddle 谢谢 最佳答案 您可以使用外部js文
SFML 只允许创建一个矩形(四四方方)形状的窗口,所有其他操作都在其中完成。我正在制作一个大富翁游戏,我基本上希望当用户单击可执行文件时大富翁 Logo 在屏幕上闪烁,并且它不必位于任何窗口内(只需
我有一个闪屏,中间有我公司的标志,下面有一个小进度条。我将启动画面作为第一个 Activity,在此之前,我会使用应用的主题背景显示启动画面的图像(没有进度条,只有 Logo )。 我在应用程序的主题
我正在学习如何使用 scrapy + splash。我已经在虚拟环境中创建了一个项目,我现在正在做这个教程:https://github.com/scrapy-plugins/scrapy-splas
我正在学习将 scrapy 与 splash 一起使用。作为练习,我正在尝试访问 https://www.ubereats.com/stores/ ,单击地址文本框,输入一个位置,然后按 Enter
我正在尝试将我的 Java 应用程序迁移到 Mac OS。 当应用程序启动时,启动画面应该会出现。 当我从终端运行应用程序时,它是这样的: java -classpath/the/right/clas
有没有办法截取 splash 中的特定元素?我似乎无法为此找到解决方案,我找到的唯一选择是使用“render.png”,它会截取整个页面的屏幕截图,我只需要一个特定的元素,例如“//table”。 我
硬件:BeagleBoneBlack 操作系统:Debian Jessie 内核:4.4.30-ti-r64 U-Boot: U-Boot 2016.11-rc3-00002-g73df7f7(201
这是一个脚本,用于列出在命令行上传递的目录/文件——是否递归: param( [switch] $r ) @gci_args = @{ Recurse = $r ErrorAction = I
假设我们有3个片段,其中包含带有向上按钮功能的工具栏 SplashFragment -> FragmentA -> FragmentB 这是应用程序的预期流程。当用户按下后退按钮到达FragmentB
这是一个脚本,用于列出在命令行上传递的目录/文件——是否递归: param( [switch] $r ) @gci_args = @{ Recurse = $r ErrorAction = I
不知道为什么,最近出现了一个错误: File "C:\Users\name\PycharmProjects\splash\project\project\spiders\scrapy.py", lin
我正在尝试从此网址抓取前 50 页: https://www.realtor.ca/Residential/Map.aspx#CultureId=1&ApplicationId=1&RecordsPe
我正在编写一个 lua 脚本,我想将其与网站的 scrapy + splash 一起使用。我想写一个输入文本然后点击按钮的脚本。我有以下代码: function main(splash) loc
我是一名优秀的程序员,十分优秀!