文档章节

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

一贱书生
 一贱书生
发布于 2016/11/23 08:52
字数 315
阅读 42
收藏 0
点赞 0
评论 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
博文 722
码字总数 600072
作品 0
冯德明/GraphicsMagic

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

冯德明 ⋅ 2015/01/13 ⋅ 0

幕布:大纲式思维笔记工具

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

己立 ⋅ 2017/12/10 ⋅ 0

Graphicsgale汉化版下载

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

wzgreengrass ⋅ 03/26 ⋅ 0

如何正确的从UI图中取色

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

没故事的卓同学 ⋅ 2017/10/30 ⋅ 0

如何对流程图的文本框背景进行颜色填充

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

熊本二号 ⋅ 01/22 ⋅ 0

2016 年度顶级开源创作工具

原文出处:opensource 译文出处:Linux中国 无论你是想修改图片、编译音频,还是制作动画,这里的自由而开源的工具都能帮你做到。 几年前,我在 Red Hat 总结会上做了一个简单的演讲,给与会...

opensource ⋅ 2017/04/26 ⋅ 0

永中发布 Office 2013 版

2013版功能新亮点: 随着云计算,移动互联时代的来临,永中紧紧抓住新技术发展方向,推出了“云漫游”的办公新概念。将文档编辑、处理、交互、协作等日常办公的各个应用架构于 “云端”,通过...

李笑石 ⋅ 2013/06/01 ⋅ 16

SWF转GIF完美解决方案

工具/原料 步骤1:将SWF动画文件转成视频 步骤2:将视频转成GIF 参考资料 SWF转GIF完美解决方案:http://spzhuanhuan.blog.163.com/blog/static/17086002220119935732554...

77970290 ⋅ 2013/05/04 ⋅ 0

ADOBE READER把PDF转换成WORD教程

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

jun9152143 ⋅ 01/18 ⋅ 0

酷客多小程序DIY体系全面升级,还加入了这些新功能

在这个追求个性的时代,很多人都不愿追随大流,而是更喜欢DIY。首页模板的DIY功能一直都备受酷客多小粉丝的喜爱,昨晚伴随着扫码点餐一起推出的,还有模板DIY的全新页面。新的DIY界面加入了首...

灵动生活 ⋅ 2017/09/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Gitee 生成并部署SSH key

1.如何生成ssh公钥 你可以按如下命令来生成 sshkey: ssh-keygen -t rsa -C "xxxxx@xxxxx.com" # Generating public/private rsa key pair...# 三次回车即可生成 ssh key 查看你的 ...

晨猫 ⋅ 28分钟前 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部