怎样分割一幅图片?

sharewarer 2003-12-05 10:01:12
如有一幅png或gif图片,需要将其分割成大小相等的四幅小图(小图的长和宽分别是大图的一半)

最好给出程序
...全文
45 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
alphafish 2003-12-05
  • 打赏
  • 举报
回复
以下程序是将一张名为house.png的图片切割为house_1.png,house_2.png,house_3.png,house_4.png四张图片。所有图片均在D盘根目录下。

测试环境为jdk1.4

import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class test
{
public static void main(String args[])
{
try
{
//读取第一张图片
File fileOne = new File("D:\\house.png");
BufferedImage ImageOriginal = ImageIO.read(fileOne);
int width = ImageOriginal.getWidth();//图片宽度
int height = ImageOriginal.getHeight();//图片高度
//计算四张图片的大小
int widthOne = width/2;
int widthTwo = width - widthOne;
int heightOne = height/2;
int heightTwo = height - heightOne;
//从图片中读取RGB
int[] ImageArray = new int[widthOne*heightOne];
ImageArray = ImageOriginal.getRGB(0,0,widthOne,heightOne,ImageArray,0,widthOne);
//生成第一张新图片
BufferedImage ImageNewOne = new BufferedImage(widthOne,heightOne,BufferedImage.TYPE_INT_RGB);
ImageNewOne.setRGB(0,0,widthOne,heightOne,ImageArray,0,widthOne);
File outFileOne = new File("d:\\house_1.png");
ImageIO.write(ImageNewOne, "png", outFileOne);//写图片

//其他三张图片做相同的处理
ImageArray = new int[widthTwo*heightOne];
ImageArray = ImageOriginal.getRGB(widthOne,0,widthTwo,heightOne,ImageArray,0,widthTwo);
BufferedImage ImageNewTwo = new BufferedImage(widthTwo,heightOne,BufferedImage.TYPE_INT_RGB);
ImageNewTwo.setRGB(0,0,widthTwo,heightOne,ImageArray,0,widthTwo);
File outFileTwo = new File("d:\\house_2.png");
ImageIO.write(ImageNewTwo, "png", outFileTwo);

ImageArray = new int[widthTwo*heightOne];
ImageArray = ImageOriginal.getRGB(0,heightOne,widthOne,heightTwo,ImageArray,0,widthOne);
BufferedImage ImageNewThree = new BufferedImage(widthOne,heightTwo,BufferedImage.TYPE_INT_RGB);
ImageNewThree.setRGB(0,0,widthOne,heightTwo,ImageArray,0,widthOne);
File outFileThree = new File("d:\\house_3.png");
ImageIO.write(ImageNewThree, "png", outFileThree);

ImageArray = new int[widthTwo*heightTwo];
ImageArray = ImageOriginal.getRGB(widthOne,heightOne,widthTwo,heightTwo,ImageArray,0,widthTwo);
BufferedImage ImageNewFour = new BufferedImage(widthTwo,heightTwo,BufferedImage.TYPE_INT_RGB);
ImageNewFour.setRGB(0,0,widthTwo,heightTwo,ImageArray,0,widthTwo);
File outFileFour = new File("d:\\house_4.png");
ImageIO.write(ImageNewFour, "png", outFileFour);//写图片
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧