使用RPA绘制素描图

1. 概要

在这篇文章中,将介绍使用RPA实施工具UiPath通过Microsoft Paint来画出一张图的素描版图片。这个功能在实施项目的时候,可能会显得鸡肋,但是这不影响我们学习一些新技术,也可以通过这个案例,了解工具强大之处,以便日后慢慢探索更多有趣好玩的功能。

2. 基本知识点

在开始做这个Demo之前,我们需要了解电脑是如何保存图片的。在普通的未压缩位图中,图像存储为一系列的点,也称为像素。每个像素都是一个很小的点或正方形,每个像素都有颜色。然后将像素排列成一个图案,形成一个图像。所以可以通过在PS或者电脑自带的画图工具中打开一幅图片并放大,就可以很容易地看到像素。 每个像素都有一些属性,比如它在图像上的坐标位置,并且每个像素都有它的颜色,也就是从0到255的数值。

3. 思路分析

在这个Demo中,我们是想将一张颜色丰富的图片转换为只有黑白两种颜色的素描图,所以我们获取到特定颜色的像素的位置坐标即可。我们将这些坐标点存储在DataTable(可以理解为二维数组)中,然后通过循环遍历出这个数组中的每个像素点坐标,并通过Click控件在Microsoft Paint画板上画出想要的图片。

4. 代码实现

以下是完整的代码实现,有需要的源码的,也可以在后文章节中找到。

注意点:

  • 获取像素点: bitmap.GetPixel(width,height)
  • 获取特定颜色的像素: (pixel_coror_2.R <25 And pixel_coror_2.G <25 and pixel_coror_2.B <25)
  • 在给Click控件设置属性CursorPosition时,OffsetX和OffsetY需要使用int32位的数值,可以使用Convert.ToInt32(row(0).ToString)方法。

5. 测试

原图

素描图

原图

素描图

6. 代码获取

代码已放在github上,有需要的小伙伴自行下载,顺便点个Star再走:

https://github.com/sombie007/RPA/tree/master/Robot-Sketch%20Drawing

原文发布于微信公众号 - 瞎说开发那些事(jsj201501)

原文发表时间:2018-06-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

Android硬件加速介绍与实现

概述 在手机客户端尤其是Android应用的开发过程中,我们经常会接触到“硬件加速”这个词。由于操作系统对底层软硬件封装非常完善,上层软件开发者往往对硬件加速的...

2438
来自专栏iOSDevLog

初试 iOS 11 新框架:Vision Framework 让文字检测变得更容易

2374
来自专栏HTML5学堂

移动端H5知识[系列] - fixed定位模式与其他

TML5学堂:移动端H5知识普及 - fixed定位模式与其他。虽然知识小,但是不得不承认的是,它们很重要~! 本文会讲解到fixed的定位模式,另外,关于li...

2775
来自专栏Material Design组件

Human Interface Guidelines — Sliders

682
来自专栏数据小魔方

蛇形图

今天要跟大家分享的图表是蛇形图! 该图表的制作原理很类似之前讲过的垂直折线图,不过这里要复杂一些,会用到很多错位排列的技巧。 下面就开始吧,还是首选让大家看一下...

3405
来自专栏腾讯社交用户体验设计

[ISUX译]响应式图像 - 腾讯ISUX

761
来自专栏浅探ARKit

iOS使用assimpKit加载FBX模型步骤详解

1.查看源码 他是遍历到每个子节点然后把动画添加上去 但是有一些节点根本加不上去 所以我们需要改一下他的源码

3547
来自专栏王二麻子IT技术交流园地

热点图像的制作

其实这个功能主要是用在地图的制作上啊!    你见过“联想”机器上联想公司赠送的“我的办公室”软件的界面吗?在那幅办公室的图片上用鼠标点一下办公桌上的键盘,就...

18910
来自专栏数据小魔方

带负值的图表标签处理方法

今天跟大家分享带负值的图表标签处理方法! ▽▼▽ 在遇到某些特殊图表时,特别是一个数据系列中既有正值又有负值的情况,数据标签以及纵轴轴标签总是会相互遮挡,做出来...

3066
来自专栏进步博客

[译]响应式图像

自从2010年Ethan Marcotte开始讨论响应式网页设计,开发者和设计师们竞相寻求处理响应式图片的方法。这的确是一个棘手的问题 ,因为我们对同一个网站在...

842

扫码关注云+社区