我有一个关于Android设备的着色书类应用的想法。
但是,我没有实际处理图像的经验,因此我可以为它们着色。我担心我的问题可能过于模糊,但这是我用自己的经验做的最好的事情,所以如果你试着回答请耐心等待(:
所以这是我的问题。目前我并不打算使用任何基于精灵的引擎,因为我没有办法支付那些我知道如何使用的引擎。所以这让我使用了基本的Android框架。
我正在寻找的结果是这样的图像:
让应用程序的用户选择一种颜色并填写空格。
我可以管理ui和编程应用程序的其他部分,但是我没有任何想法如何处理这样的图像,以便应用程序可以将白色空间识别为段并获得为它们着色的能力
如果您需要有关我的问题的更多信息,请随时询问!
提前感谢哦,光荣的stackoverflow社区< 3
答案 0 :(得分:1)
这个问题对于Stack Overflow而言过于宽泛,可能会被关闭,但与往常一样,您应该将问题分解为更小的部分。
步骤1:处理图像,使其仅包含黑白图像。您现在发布的图片包含"灰白色"将使填充变得更加困难的文物,所以摆脱它们。
第2步:检测用户点击的位置。当用户点击时,您需要知道该点击图像中的位置。
步骤3:从该点开始,填充它周围的(白色)区域。谷歌是你的朋友,但flood fill algorithm是一个很好的起点。
步骤4:输出图像。
您可以将这些步骤细分为更小的步骤。如果您遇到特定步骤,那么您可以发布MCVE来展示您尝试过的内容,并且可以更轻松地帮助您。
答案 1 :(得分:1)
你可以做下一个:
Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image);
要将像素置于 (x,y) 位置,请使用:
myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0,
myBitmap.getWidth(), myBitmap.getHeight());
myBitmap.setPixel(x, y, Color.rgb(255, 255, 0));
答案 2 :(得分:1)
点击此链接:Android flood-fill algorithm
使用QuickLinearFloodFilelr填充白色区域。
像这样:
QueueLinearFloodFiller f = new QueueLinearFloodFiller(mBitmap,clr_int,mPaint.getColor());
f.setFillColor(mPaint.getColor());
f.setTargetColor(clr_int);
f.setTolerance(10);
f.floodFill(p1.x,p1.y); //fill bitmap, at p1 with p1's color and fill with Color from Switch