目标:使用.NET和C#编程,以程序方式创建照片马赛克。
我想以编程方式完成这个项目的主要原因是为了能够自己记录每个图像的位置,从而创建出图像汇聚成照片马赛克的动画效果。如果可以找到现有的可用工具来完成这个任务,那将非常棒。
有任何想法吗?
我认为你可以从颜色量化中借鉴一些想法。对于每张照片,计算它的平均颜色。由于它很小,所以从远处看它就是这个样子。然后将目标图像分成与照片大小相同的矩形,并计算它们的平均颜色。或者,为了获得更好的结果,适当缩小它,使每张照片对应于目标图片中的一个像素。然后,对于目标图片的每个像素,选择具有最接近像素颜色的颜色值的照片(最接近-即在3D RGB立方体中最接近)。你还可以应用一些抖动效果,使其看起来更好(Floyd-Steinberg算法是最好的算法之一)。