【共享插件】麻将拼图
用麻将做像素,拼出图像。

(网盘失效,已重新上传附件到文章末尾。--2017.10.28)
CorelDraw X3可用,其他版本尚未测试过。
插件以宏的形式运行,打开“【共享插件003】麻将拼图.cdr”文档即可使用。使用方法如有疑问,请参考作者以前的文章。
绿色版、精简版CorelDraw跑外挂会有问题,请换正式版。
打开文档,用户界面跳出:

右下角的按钮是广告:敬请关注作者的微信公众号“创意之代码”,会有持续的收获。

这次的插件与前面几个略有不同,cdr文档不是空的,第一个页面包含如下内容:

乔帮主的头像是应用示例(怎么看着有点像灵棚,加上周围各种鬼符……),可以删掉换女神。其他内容都不得删,也不得改(包括页面名称“42MJ”)。不能删的东西都已锁定,没事不要解锁,如果你还想正常使用这个插件的话。
“Load图像”按钮会把用户选定的图像或图形复制到界面上:

有了这一步后,执行按钮“Go!”才变成可用状态。
用户只能选择一个对象,如果要选多个,请先群组。如果所选的不是图片,而是CorelDraw里建立的图形对象,也可以。图形的空白处会被处理为白色,且所有被选对象均被处理为灰度图——本插件只生成灰度图像。

点击“Go!”后,麻将拼成的乔帮主头像出现在新页面。题图错行码砖,下面这个是规规矩矩的排列像素,分辨率(图宽)也降到了20。

作者很喜欢这个:

Over。
一些多余的话
把图像用作像素,拼出一幅图画——福田繁雄(Shigeo Fukuda)可能不是最早的,但应该是最有名的。



这种拼贴风格的模仿者甚众,以致乔帮主去世后网上也出现了这么一幅图。

乔帮主的肖像跟福田作品不同的地方是采用了智能细化(不管是不是智能,反正该粗的粗该细的细),这个也容易实现,作者的后续文章还会提到。
这种“设计风格”最原始的魅力大概还是来自于数字技术不发达的年的制作这种图像那恐怖的工作量带来的敬畏感。说到工作量,其实很多艺术家深谙此道:一些寻常的主题用最耗时耗力的方式来表达出来后,忽然就变得高大上了。这点其实是传统艺术的延续:在没有设计意识的旧时代,价值的体现除了“工”就是“料”,把自己累瘫的自虐作品总有人买单。本文作者及其门徒如果不幸做了这些人的终结者,还请见谅。
作者若干年前还在读书时,周末闲着无聊做过一个用ASCII码拼图的小插件,前不久还有人在站酷发文讨论过这类东西,效果like this:

上面这个ASCII码插件等我过几天整理一下也在这里共享。这些东西以前编出来都是自己用着玩的,有bug也懒得去修。拿出来给别人用就不一样了,免费不等于品质低劣。坚决抵制劣货!
这种图的做法即使不懂编程的人也能想明白。是的,就是把每个字符的黑色部分所占空间面积的比例计算出来,就可以得到一个灰度值;然后检测图片上的像素,找出相应灰度的字符,放在指定位置即可。这样,字符就充当了像素。
如果假设每个ASCII字符多占空间大小都一样(实际是不同的),那么它们的占据空间面积按黑色覆盖率从小到大排列顺序如下:
. , ' , :, , , ; , - , ; , *, ~ , _ , i , ! , I, r , l , ^ , / , > , < , 1 , =, | , + , j , v , t, f , ? , L , J , 7 , { , } , [ , ] , c, x , T , Y , z , y, u , n , k , 3 , o, 2 , V , h , s , F, 4 , a , 5 , e , U, C , b , O , P , d, w , q , p, Z , A , 8 , 9 , H, 6 , X , () , $ , K, m , S , N , D , E, g , $ , G , O , #, R , % , B , Q , M, W , @
使用汉字做像素会更有趣,因为每个汉字都有意义,连起来指不定能出一部文学作品呢。
如果使用的不是字符,而是一些更复杂的图片,比如国旗、苹果产品、福田的作品、影集等等,道理也是一样。
制作这个插件时,作者首先想到的是扑克牌。但是扑克牌只有54张,而且有很多灰度相近的牌面图案,识别出来的灰度只有十几个级别,色调不够丰富。后来才想到了国粹——麻将。麻将有168张牌,可以分出42个不同灰度的牌面图案,是一种比较理想的像素图案。最后就决定用它了。

麻将图片文档的命名规则是:前面的数字代表灰度,后面的数字代表42张牌的序号。序号其实是不必要的,加上序号是因为有些牌面的灰度值相同,为避免重名需要区别开。
这个插件的原始版本是把42张牌的bmp图片放在硬盘的一个文件夹里,插件运行时一个个导入并摆放到指定的位置。这样做难免会有用户觉得烦,所以就把图片预先导入cdr文档中,供临时选用。Bmp图片文档名就用作导入图形对象的名称了。
代码编完,发觉就把这个东西拿去给人用终究免不了“搞怪”的定位,不是所有人都愿意把自己的尊容搞成一盘麻将。于是又往前走了一步,允许用户指定一个文件夹,用文件夹里的图片当像素来拼图,程序自动计算图片的像素灰度。这样的不足就是用户指定的图片集(可能是自己女神或男神的偷拍集锦)一是数量不一定满足要求,二是灰度序列不一定足够丰富,这样效果就会打折。所以这部分功能最后就砍掉了。用户玩不好的东西,我宁可不给他们玩。
上述只是拼灰度图像的做法,如果要拼出一个彩色图像,则需要的图片就更多了,色彩要求也更丰富,最麻烦的不是编写程序,而是准备图片集。网上有些类似的小软件的做法是偷梁换柱,预先把源图片进行色彩调整,处理成所需的色彩。这样,一幅图可以当好几种像素使用。这个也简单,等作者以后有空做出来添加到升级版本中。






































