首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

圖像的組成元素

Jan 19 2018 DELIBERATE PRATICE

PIXELS ARRAY 素組

Tool PROCESSING PHOTOSHOP FCP X

序PREFACE

在如今各种修图app横行的时代,接触过稍微专业些的修图软件的朋友应该都知道什么是RGB曲线,它表示图像中存储的色彩信息。对图像处理稍微深入一点的朋友,可能会知道一个概念,叫‘灰度’,即Gray。那对摄影有更深入了解的朋友呢,就会知道著名的亚当斯区域曝光理论,他提出,将256阶的灰度信息划分为11各区域,0-3区为低调区域,4-6为中间调区域,7-10为高调区域。(跑偏了,拽回来)

其实呢,图像中分别存储着RGB信息和Gray信息,而像素,就是这些信息的载体!

像素是图像的组成元素,也是图像的最小单位。我们经常提到像素,却不知像素到底是什么样?它为何如此神秘?图像之所以是一张图像,是因为其中的像素以特定的序列进行排序,那如果?改变这些像素的顺序,会发生什么变化呢?

视频压缩太厉害了

(毁我视频)

观看效果不佳

可以复制以下链接到PC端观看~

https://v.qq.com/x/page/t0537f8gxs3.html?

在复习周的时候,我在‘坏打印机’的文章中看到了这个效果,当时就觉得非常酷炫,决定自己也要做出来。但是复习周忙着复习(其实也没有复习,经常跟舍友约看恐怖片),就搁置了。

如今有时间我就决定花几天时间搞定它。从一开始的时候毫无头绪,到最后可以依据像素做一些变形的效果,遇到/解决了不少问题,学了不少,这里做个小结。

像素排序。

这无疑是入手点,最基本也最关键。

每一张图像中的像素都以特定的序列排序,那么以gray数据的大小进行排序,就得到一个新的序列。根据这个新的序列,可以由一组一模一样的像素数据变换成截然不同的图像。

(Gray Info)

排序事小(其实也发生了小插曲),关键是像素的坐标信息如何获取,又如何存储。一开始我怎么想都想不明白,翻阅API也找不到,但后来写一个for循环就恍然大悟了。

存储问题也很困惑,既需要依据Gray对Pixels排序,也要保留Pixels的位置,翻阅了API,考虑了数组,但最后一拍脑袋,怎么不会想到对象呢?面向对象编程在关键时刻忘得一干二净?所以我定义了一个Pixel对象,用于存储像素的Gray以及坐标信息(x&y)。

像素运动

排序工作做好了之后,建立起‘点对点’的gray映射关系。但Pixels是如何从一个坐标点运动到另一个坐标点的呢?先後尝试了加速运动,匀速运动,但最终还是选定先加速后减速,Pixels的运动状态看起来会舒服一点。

绘制像素

从视频或是从gif动图上看,确实是看到了数十万以上的像素在同时运动。所以我一开始的构想是,移动原图像的像素点,最后没成功,才想到原来可以绘制像素点。

我们所看到的图像中的像素是一个极小的小方块,它有色彩信息也有亮度信息,那我便可以通过绘制方块以及赋予它亮度信息(黑白没有RGB)让它‘成为’一个像素。

根据上面的思路,还可以改变像素的形状,比如菱形、点、直线、曲线、数字等。

動畫效果ANIMATION

最后有一点感悟:

当我们以为我们正面临着困难的时候

恰恰是我们投入的时间不够多 而已

晚安~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180122G00MPB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券