文档章节

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

一贱书生
 一贱书生
发布于 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
如何对流程图的文本框背景进行颜色填充

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

熊本二号
01/22
0
0
如何正确的从UI图中取色

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

没故事的卓同学
2017/10/30
0
0
ADOBE READER把PDF转换成WORD教程

目前国外很多软件的支持信息都使用PDF方式进行发布,如果没有Adobe Reader,无法查看其内容,如果没有相关的编辑软件又无法编辑PDF文件。转换为DOC格式则可以实现编辑功能。尽管有些软件也可...

jun9152143
01/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Docker学习笔记

Docker Resources All In One Docker 学习资源整理

OSC_fly
23分钟前
3
0
Android 安全逆向:篡改你的位置信息

篡改你的位置信息

蔡小鹏
23分钟前
3
0
SpringMVC 全局异常处理,返回json

1.在spring-mvc.xml中增加配置: 比如我的freemarker视图定义的是:/WEB-INF/template 我的页面则放在template下的common目录下,所以下方定义的是common/500,文件扩展名根据视图定义可以忽...

Gmupload
24分钟前
2
0
一篇文章搞定前端面试

本文旨在用最通俗的语言讲述最枯燥的基本知识 面试过前端的老铁都知道,对于前端,面试官喜欢一开始先问些HTML5新增元素啊特性啊,或者是js闭包啊原型啊,或者是css垂直水平居中怎么实现啊之...

Jack088
31分钟前
3
0
ajax 轮询请求后台服务器

<script type="text/javascript"> // var i=0; //声明轮询次数变量 $(document).ready(function(){ c = window.setInterval("getResult()",10000); //间隔多少秒去触发ajax }); function get......

15834278076
34分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部