「java切割精灵」精灵切割机怎么使用

博主:adminadmin 2023-01-28 10:45:08 254

今天给各位分享java切割精灵的知识,其中也会对精灵切割机怎么使用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

求一个Java切割图片的函数

package com.supben.util;

import java.awt.Dimension;

import java.awt.Image;

import java.awt.Point;

import java.awt.Rectangle;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.Iterator;

import javax.imageio.ImageIO;

import javax.imageio.ImageReadParam;

import javax.imageio.ImageReader;

import javax.imageio.stream.ImageInputStream;

import org.apache.log4j.Logger;

import com.sun.image.codec.jpeg.JPEGCodec;

import com.sun.image.codec.jpeg.JPEGEncodeParam;

import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class ImageUtil {

private static final Logger log = Logger.getLogger(ImageUtil.class);

/**

* 切割图片

* @param x 截点横坐标 (从左开始计数)

* @param y 截点纵坐标 (从上开始计数)

* @param width 截取的宽度

* @param height 截取的长度

* @param oldpath 图片位置

* @param newpath 新生成的图片位置

*/

public static void cutImage(int x, int y, int width, int height, String oldpath, String newpath) {

FileInputStream is = null;

ImageInputStream iis = null;

//这个是获取图片扩展名的方法,比如:jpg。我这里有现成的,如果没有,自己实现

String imgType = StringUtil.getExt(oldpath);

try {

is = new FileInputStream(oldpath);

IteratorImageReader it = ImageIO.getImageReadersByFormatName(imgType);

ImageReader reader = it.next();

iis = ImageIO.createImageInputStream(is);

reader.setInput(iis, true);

ImageReadParam param = reader.getDefaultReadParam();

Point p = new Point();

p.setLocation(x, y);

Dimension d = new Dimension();

d.setSize(width, height);

Rectangle rect = new Rectangle(p, d);

param.setSourceRegion(rect);

BufferedImage bi = reader.read(0, param);

ImageIO.write(bi, imgType, new File(newpath));

is.close();

iis.close();

} catch (Exception e) {

log.error(e);

}

}

/**

* 缩略图片

* @param oldpath 原图片

* @param newpath 新生成的图片存放地址

* @param wdith 缩略后的宽

* @param height 缩略后的高

*/

public static void scaleImage(String oldpath, String newpath, int wdith, int height) {

// 获取老的图片

File oldimg = new File(oldpath);

try {

BufferedImage bi = ImageIO.read(oldimg);

Image Itemp = bi.getScaledInstance(wdith, height, BufferedImage.SCALE_SMOOTH);

BufferedImage thumbnail = new BufferedImage(wdith, height, BufferedImage.TYPE_INT_RGB);

thumbnail.getGraphics().drawImage(Itemp, 0, 0, null);

// 缩略后的图片路径

File newimg = new File(newpath);

FileOutputStream out = new FileOutputStream(newimg);

// 绘图

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbnail);

param.setQuality(1.0f, false);

encoder.encode(thumbnail);

out.close();

bi.flush();

bi = null;

} catch (IOException e) {

log.error(e);

}

}

public static void main(String[] args) {

scaleImage("D:/2.jpg", "D:/3.jpg", 50, 50);

}

}

如何用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字符串切割split的几个问题

String[] 就是字符串数组的意思。

newstr是字符串数组的引用,newstr.length就是这个字符串数组的长度。

这个其实看API最好,

limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用

n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n

为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为

0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。

怎么用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精灵

唉。。正是智能机软件。你想想java是个系统软件系统,除了智能机可以自我改进普通的根本就没指望!1运算速度达不到2配置不行。如果还不死心可以上个大论坛上找一找,那些发烧友可能会做出来但功能肯定会打折。着想破译游戏可在电脑上进行。

java切割精灵的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于精灵切割机怎么使用、java切割精灵的信息别忘了在本站进行查找喔。