導航:首頁 > 編程語言 > 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

友情鏈接