概述
今天进行一个很有意思的实践,利用Java编程实现照片拼图,通过程序操作图片文件,结合photoshop软件,实现下面的效果:
该图片由很多小图片拼接而成,放大以后是这样的效果:
下文中将介绍实现步骤,主要用到了Java程序和photoshop,利用Java编程完成图片的拼接和原图像的采样,然后利用photoshop完成采样图片和拼图图片的叠加,达到更好的效果。
原理
构造这样一幅拼图的原理很简单,主要分为3个步骤:
① 将作为子元素的图片缩小,拼接成一幅图片,这里称为:拼图图片。
② 对原图片中的颜色进行采样,并实现图片的像素化,生成半透明的采样图片。
③ 将采样图片覆盖在拼图图片之上,操作完成。
合成步骤可以用下图来描述:
利用Java中的BufferedImage类可以很轻松地对图片文件进行处理,在这里,我们主要的操作是:读取和写入图片中某个位置的像素值。主要用到的方法如下:
BufferedImage read(File file):
ImageIO类中的静态方法。根据指定的File对象构建一个BufferedImage对象,支持png、jpg格式的图片文件,如果file对象指向的不是一个图片文件,则会出现异常。
BufferedImage(int width, int height, int imageType):
构建一个新的BufferedImage对象,参数指定了图片的尺寸以及图片的类型。imageType参数可以使用BufferedImage类中提供的静态常量,例如BufferedImage.TYPE_3BYTE_BGR,表明图片为RGB三色模式,每个像素的信息用3个字节来表示。初始情况下,图片中所有位置的像素值均为0,即为黑色。
int getRgb(int x, int y):
|