导航:首页 > 编程语言 > java图片分割

java图片分割

发布时间:2021-03-10 17:18:59

❶ 如何用java实现切割一张图片

BufferedImage类有一个getSubimage()方法,以下来自API
public BufferedImage getSubimage(int x,
int y,
int w,
int h)
返回由指定矩形区域定义的子图像。返回的 BufferedImage 与源图像共享相同的数据数组。
参数:
x - 指定矩形区域左上角的 X 坐标
y - 指定矩形区域左上角的 Y 坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
返回:
BufferedImage,它是此 BufferedImage 的子图像。
抛出:
RasterFormatException - 如果指定区域不包含在此 BufferedImage 中

❷ 用java如何将一张图片切割成九块,然后保存在自己的系统盘里

用bufferImage类的SubImage方法,切割,然后用ImageIO的静态方法,write写出到文本。

❸ java 图片切割 求助

BufferedImage类有一个getSubimage()方法,以下来自API

public BufferedImage getSubimage(int x,
int y,
int w,
int h)

返回由指定矩形区域定义的子图像。返回的 BufferedImage 与源图像共享相同的数据数组。

参数:
x - 指定矩形区域左上角的 X 坐标
y - 指定矩形区域左上角的 Y 坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
返回:
BufferedImage,它是此 BufferedImage 的子图像。
抛出:
RasterFormatException - 如果指定区域不包含在此 BufferedImage 中

❹ 用java把这张图片切割,把每一个数字都切割出来,切割成一个一个的小图片

暂时只能上传一个。

❺ 用java做拼图游戏,怎么把图片切割成不规则形状

以我现在的知识,我还不知道如何更简单的去做。
但如果以实现方式来讲,
一种是人工将图片这种形状

一种是 非常麻烦,需要程序进行大量计算。要对图片转换成 int 数值 有所了解
我想我只能提供你思路,因为具体实现是比较麻烦的
因为我不是讲语文的,不知道能不能说明白,比较意识流。。。

人工将图片的几种形状画出一种以指定颜色背景的半透明的图,,
比如方案为
■■■■□□■■■■□□■■■■
■■■□□■■■■■■□□■■■
■■■■□□■■■■□□■■■■
■■■□□■■■■■■□□■■■
■■□■□□■□□■□□■□■■
□□□□□□□□□□□□□□□□
□□■□□□□■■□□□□■□□
■■■■□□■■■■□□■■■■
■■■□□■■■■■■□□■■■
■■■■□□■■■■□□■■■■
■■■■□□■■■■□□■■■■

我想我画的试例图你明白了吧,是可以进行对接拼图的

一个比如说红色图片 4*4大小的,那么他转成int数据时就是
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0xffff0000 0xffff0000 0xffff0000 0xffff0000
0x后面的ff表示是不透明的
第二个ff及后面的4个0表示图片颜色前2位是红中间是绿最后是蓝 这一点你可以用photoshop去查看
比如我上面第一张图的数据,转成int 数据时,就应该是

A B C D
1 0xffff0000 0xffff0000 0xffff0000 0xffff0000
2 0xffff0000 0xffff0000 0xffff0000 0x00ffffff
3 0xffff0000 0xffff0000 0xffff0000 0xffff0000
4 0xffff0000 0xffff0000 0xffff0000 0x00ffffff
5 0xffff0000 0xffff0000 0x00ffffff 0xffff0000

其中 D2 D4 及C5的位置是透明的0x00表示透明
说到这,也就是说,你应该能通过你生成的那几个指定的图片获得这几个图片对应的数据模板
之后你将你的要拼图的图片,按你设计好的模板拼图方式,生成图片块 注意,因为你要的效果是两个图片对接的,所以在生成的时候,也要注意,是对接的

如果你做到这一步,(或说成,你能想明白到这一步,哪怕不知道怎么做,没关系)

你这时应该能得到每块图片,和每块图片对应的是哪种模板
将这块图片转成int 数组形式的 数据文件
之后将这个数据文件与对应的模板数据文件进行对应,
当发现你的模板的数据值为0x00ffffff时,就说明这个位置的颜色应该是透明的,这时因为你的图片数据与模版数据ID是相对应的,直接找到图片数据ID,将他的值改为0x00ffffff就可以了。

到这一步,你应该可以实现将所有分割后的图片,在数据上转换成了你想要的样子。
这时,你只要通过一些函数将数据文件转换成图片格式就行了。

因为我做的是手机方面的,你用的可能是J2SE吧,API我不是很熟,不能提供具体的方法。

❻ java编程怎么才能分割图片

public BufferedImage getSubimage(int x,
int y,
int w,
int h)返回由指定矩形区域定义的子图像。返回的 BufferedImage 与源图像共享相同的数据数组。

参数:
x - 指定矩形区域左上角的 X 坐标
y - 指定矩形区域左上角的 Y 坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度

你先把分块的坐标弄好,在拿这个方法去拿没块的图就是了。

❼ JAVA PNG图片分割,无背景。

怎么会无法呢。支持图片格式中最好的就是png,别的图片可以不支持,png是默认支持的。用ARGB色彩模型直接对png操作即可,

importjava.awt.image.BufferedImage;

importjava.io.File;

importjava.io.IOException;

importjavax.imageio.ImageIO;

publicclassTest{

staticpublicvoidmain(String参数[]){

try{

BufferedImageimg=ImageIO.read(newFile("test.png"));

inthalf_w=img.getWidth()/2;

intrgb[]=newint[half_w*img.getHeight()];

img.getRGB(0,0,half_w,img.getHeight(),rgb,0,half_w);

BufferedImageimg_half=newBufferedImage(half_w,img.getHeight(),BufferedImage.TYPE_INT_ARGB);

img_half.setRGB(0,0,half_w,img.getHeight(),rgb,0,half_w);

//保存到新文件half.png里面

ImageIO.write(img_half,"PNG",newFile("half.png"));

}catch(IOExceptione){

e.printStackTrace();

}

}

}

======

得到half.png签名图的左半边,保留了透明的背景。

这已经只有5-6行,抛砖引玉,用raster可能代码更简..

❽ 求一个Java切割图片的函数

BufferedImage类下面有这么一个方法:

getSubimage
public BufferedImage getSubimage(int x,
int y,
int w,
int h)

返回由指定矩形区域定义的子图像。返回的 BufferedImage 与源图像共享相同的数据数组。

参数:
x - 指定矩形区域左上角的 X 坐标
y - 指定矩形区域左上角的 Y 坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
返回:
BufferedImage,它是此 BufferedImage 的子图像。
抛出:
RasterFormatException - 如果指定区域不包含在此 BufferedImage 中。

❾ 怎么用java切割出不规则图形的图片

//用基本图形拼呀

import java.awt.Graphics;

import javax.swing.*;


public class IrregulaShape extends JPanel{



@Override
public void paint(Graphics g) {
super.paint(g);
g.drawRect(100, 50,100, 100);
g.drawArc(100, 25, 50, 50, 0, 180);


//g.fillRect(100, 50, 100, 100);
//g.fillOval(100, 25, 50, 50);
}
public static void main(String[] args) {
JFrame jFrame = new JFrame("不规则的!");
IrregulaShape j = new IrregulaShape();
jFrame.add(j);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setSize(500,500);
jFrame.setLocationRelativeTo(null);
jFrame.setVisible(true);

}

}

❿ 如何用Java实现图形切割

给你代码。
你可以多搜索一下。原贴在
http://topic.csdn.net/t/20050414/13/3935988.html

-----------------------------------
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class SlipImage {

public static void main(String[] args) throws Exception {
BufferedImage image = ImageIO.read(new File("E:\\1.jpg "));
saveSubImage(image, new Rectangle(150, 150, 200, 300), new File(
"E:\\sub2.jpg"));

}

private static void saveSubImage(BufferedImage image,
Rectangle subImageBounds, File subImageFile) throws IOException {
if (subImageBounds.x <= 0
|| subImageBounds.y <= 0
|| subImageBounds.x + subImageBounds.width >= image.getWidth()
|| subImageBounds.y + subImageBounds.height >= image
.getHeight()) {
System.out.println("Bad subimage bounds ");
return;
}

BufferedImage subImage = image.getSubimage(subImageBounds.x,
subImageBounds.y, subImageBounds.width, subImageBounds.height);
String fileName = subImageFile.getName();
String formatName = fileName.substring(fileName.lastIndexOf('.') + 1);

ImageIO.write(subImage, formatName, subImageFile);
}
}

阅读全文

与java图片分割相关的资料

热点内容
网络中常用的传输介质 浏览:518
文件如何使用 浏览:322
同步推密码找回 浏览:865
乐高怎么才能用电脑编程序 浏览:65
本机qq文件为什么找不到 浏览:264
安卓qq空间免升级 浏览:490
linux如何删除模块驱动程序 浏览:193
at89c51c程序 浏览:329
怎么创建word大纲文件 浏览:622
袅袅朗诵文件生成器 浏览:626
1054件文件是多少gb 浏览:371
高州禁养区内能养猪多少头的文件 浏览:927
win8ico文件 浏览:949
仁和数控怎么编程 浏览:381
项目文件夹图片 浏览:87
怎么在东芝电视安装app 浏览:954
plc显示数字怎么编程 浏览:439
如何辨别假网站 浏览:711
宽带用别人的账号密码 浏览:556
新app如何占有市场 浏览:42

友情链接