文档章节

实现许多图片编辑软件都支持的“填充颜色”功能

一贱书生
 一贱书生
发布于 2016/11/23 08:52
字数 315
阅读 42
收藏 0

/**
 * 功能:实现许多图片编辑软件都支持的“填充颜色”功能。
 * 给定一个屏幕(以二维数组表示,元素为颜色值)、一个点和一个新的颜色值,将新颜色填入这个店的周围区域,知道原来的颜色值全都改变。

 */

 

 

  1. /** 
  2.  * 思路:假设要对一个像素(比如红色)调用paintFill,即对周围的像素逐一调用paintFill, 
  3.  * 向外扩张,一旦碰到非红色的像素就停止填充。 
  4.  *  
  5.  * 注意:碰到图像问题,要注意screen[y][x]中x和y的顺序。x表示水平轴(即自左向右),实际上对应于列数,而非行数。y的值等于行数。 
  6.  * @param screen 
  7.  * @param x 
  8.  * @param y 
  9.  * @param ncolor 
  10.  * @return 
  11.  */  
  12. public static boolean paintFill(Color[][] screen,int x,int y,Color ncolor){  
  13.     if(screen[y][x]==ncolor)  
  14.         return false;  
  15.     return paintFill(screen, x, y, screen[y][x], ncolor);  
  16. }  
  17.   
  18. public static boolean paintFill(Color[][] screen,int x,int y,Color ocolor,Color ncolor){  
  19.     if(x<0||x>=screen[0].length||y<0||y>=screen.length)  
  20.         return false;  
  21.       
  22.     if(screen[y][x]==ocolor){  
  23.         screen[y][x]=ncolor;  
  24.         paintFill(screen, x-1, y, ocolor, ncolor);//左  
  25.         paintFill(screen, x+1, y, ocolor, ncolor);//右  
  26.         paintFill(screen, x, y-1, ocolor, ncolor);//上!!!  
  27.         paintFill(screen, x, y+1, ocolor, ncolor);//下!!!  
  28.     }  
  29.     return true;  
  30. }  

 

[java] view plain copy

 

  1. enum Color{  
  2.     Black,White,Red,Yellow,Green  

© 著作权归作者所有

共有 人打赏支持
一贱书生
粉丝 19
博文 724
码字总数 600123
作品 0
冯德明/GraphicsMagic

#GraphicsMagic 本项目是一个仿PhotoShop的图像处理软件,由来自大连的来自中国大连的一对儿双胞胎兄弟,马晓光、马晓明创作,经他们同意开源,我代为上传至开源中国GIT中,欢迎大家一起参与...

冯德明
2015/01/13
0
0
幕布:大纲式思维笔记工具

前言 幕布是一款 Outliner 类工具,它以大纲的形式来对资料进行结构化的记录和管理。大纲类的记录形式最显而易见的特征就是 “结构层次分明”、“条理清晰”,并且可扩展性非常强。 使用场景...

己立
2017/12/10
0
0
Graphicsgale汉化版下载

Graphicsgale中文版是一款强大、好用的像素画绘制软件,可以用来修饰图片也可以用来画图,很方便。该软件支持很多格式,有.ico, .gif, .avi, .cur, .ani等等,还支持很多种方式导出,可以适应...

wzgreengrass
03/26
0
0
如何正确的从UI图中取色

在移动开发过程中,从UI图上获取颜色是日常开发中常有的事。不过从图片获取颜色也有很多种操作方式,很多人在日常中取到的并不是“正确”的值。 上策:避免从图片中取值 最好的情况就是不需要...

没故事的卓同学
2017/10/30
0
0
如何对流程图的文本框背景进行颜色填充

在使用流程图软件制作的时候,很多朋友会选择模板进行编辑修改,因为模板的样式和选择性比较多,但有时模板中也会存在着我们不太喜欢的部分,例如,文本框的背景颜色,那么我们该如何对文本框...

熊本二号
01/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

postman发送json格式的post请求

postman发送json格式的post请求 在地址栏里输入请求url:http://127.0.0.1:8081/getmoney 选择“POST”方式, 在“headers”添加key:Content-Type , value:application/json 点击"body",''ra...

两广总督bogang
9分钟前
0
0
Javascript将html转成pdf,下载(html2canvas 和 jsPDF)

最近碰到个需求,需要把当前页面生成pdf,并下载。弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) 项目源码地址:https://github.com/linwalker/render-html-to-pdf html2ca...

孟飞阳
10分钟前
0
0
pureftp源码编译及设定

--- use for RHEL 567 and Ubuntu 1604 1. download pureftpd wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.47.tar.bz2 2. install gcc #apt-get install -y li......

zzimac
12分钟前
0
0
Android 事件分发 简单学

本文地址:https://my.oschina.net/lifj/blog/1928132 Android 事件分发过程 网上有很多这样的文章,我又写了一篇,希望能够清晰明了的告诉大家整体的事件分发过程,而不是一脸懵逼的进来,一...

拉风的道长
12分钟前
0
0
手相学 - 天尊山道人看相算命

手相学 - 天尊山道人看相算命 手并拢,左右手正面,背面,小指侧面共六张照片,(可选:舌象、面相)。光线,自然光较好,非阳光直射。 EM4KBJK}Y9Z6ONEL(C~DDV.jpg 生命线 生命线:由拇指与食...

python测试开发人工智能安全
13分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部