「图片剪切java」图片剪切拼接软件

博主:adminadmin 2022-11-27 03:44:07 59

今天给各位分享图片剪切java的知识,其中也会对图片剪切拼接软件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java截取图片

呵呵,很明确的告诉你:可以!

代码半小时后出来!!!

……

终于出来了(呵呵,好像超过了半小时哈)且看代码:

import java.awt.Color;

import java.awt.Graphics;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import javax.swing.JApplet;

public class Test extends JApplet{

String addrs="F:\\images\\mm.bmp";//改成自己的图片路径

BufferedImage mm,child;

CutImage ci;

public Test(){

try {

mm=ImageIO.read(new File(addrs));

} catch (IOException e) {

System.out.println("图片读取失败!");

e.printStackTrace();

}

ci=new CutImage(mm);

child=ci.getChildImage(50, 0, 150, 220);

}

public void init(){

}

public void paint(Graphics g){

g.setColor(Color.red);

g.drawString("原图:",0,10);

g.drawImage(mm, 20,10,this);

g.drawString("ci.getChildImage(50, 0, 150, 220)截取后的图片",mm.getWidth()+30,10);

g.drawImage(child, mm.getWidth()+50,20,this);

}

}

import java.awt.Image;

import java.awt.image.BufferedImage;

public class CutImage {

private BufferedImage img;

private BufferedImage child;

public CutImage(){

}

public CutImage(BufferedImage im){

img=im;

}

public CutImage(Image im){

img=(BufferedImage)im;

}

public void setImg(BufferedImage img) {

this.img = img;

}

public BufferedImage getChildImage(int x,int y,int width,int height) {

int cw=width;

int ch=height;

int pw=img.getWidth();

int ph=img.getHeight();

if(pwx+width){

System.out.println("给出的参数超出原图片的范围!程序会自动减小宽度或高度");

cw=pw-x;

}

if(phy+height){

System.out.println("给出的参数超出原图片的范围!程序会自动减小宽度或高度");

ch=ph-y;

}

child=new BufferedImage(cw,ch,BufferedImage.TYPE_INT_ARGB );

for(int i=0;ich;i++){

for(int j=0;jcw;j++){

child.setRGB(j, i, img.getRGB(x+j, y+i));

}

}

return child;

}

}

呵呵,希望楼主能够满意哦,如果你愿意的话,稍微改一下代码就可以把截取的图片child报春到你的电脑上了。下面程序的运行效果吧!

java怎么剪裁图片

使用BufferedImage 创建Graphics、再绘到新建的BufferedImage中、再 用ImageIO保存成jpg

java中如何用鼠标点击截取一张图片的某部分(希望有具体代码)

用map标签,在drw里用热区,拖动就可以了,你试试

代码会自动生成,如下:

map

name="Map"

id="Map"area

shape="rect"

coords="104,303,223,357"

href=""

/

/map

你只要换掉104,303,223,357(图片区域上下左右坐标的位置)和超链接地址即可

如何在Java中进行图片剪裁 疯狂JAVA

package test;

import java.awt.Color;

import java.awt.Graphics2D;

import java.awt.Image;

import java.awt.geom.AffineTransform;

import java.awt.image.AffineTransformOp;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.nio.Buffer;

import javax.imageio.ImageIO;

import javax.imageio.stream.ImageOutputStream;

/**

 * 裁剪、缩放图片工具类

 * 

 * @author CSDN 没有梦想-何必远方

 */

public class ImgUtils {

/**

 * 缩放图片方法

 * 

 * @param srcImageFile

 *            要缩放的图片路径

 * @param result

 *            缩放后的图片路径

 * @param height

 *            目标高度像素

 * @param width

 *            目标宽度像素

 * @param bb

 *            是否补白

 */

public final static void scale(String srcImageFile, String result,

int height, int width, boolean bb) {

try {

double ratio = 0.0; // 缩放比例

File f = new File(srcImageFile);

BufferedImage bi = ImageIO.read(f);

Image itemp = bi.getScaledInstance(width, height, bi.SCALE_SMOOTH);// bi.SCALE_SMOOTH

// 选择图像平滑度比缩放速度具有更高优先级的图像缩放算法。

// 计算比例

if ((bi.getHeight()  height) || (bi.getWidth()  width)) {

double ratioHeight = (new Integer(height)).doubleValue()

/ bi.getHeight();

double ratioWhidth = (new Integer(width)).doubleValue()

/ bi.getWidth();

if (ratioHeight  ratioWhidth) {

ratio = ratioHeight;

} else {

ratio = ratioWhidth;

}

AffineTransformOp op = new AffineTransformOp(AffineTransform// 仿射转换

.getScaleInstance(ratio, ratio), null);// 返回表示剪切变换的变换

itemp = op.filter(bi, null);// 转换源 BufferedImage 并将结果存储在目标

// BufferedImage 中。

}

if (bb) {// 补白

BufferedImage image = new BufferedImage(width, height,

BufferedImage.TYPE_INT_RGB);// 构造一个类型为预定义图像类型之一的

// BufferedImage。

Graphics2D g = image.createGraphics();// 创建一个

// Graphics2D,可以将它绘制到此

// BufferedImage 中。

g.setColor(Color.white);// 控制颜色

g.fillRect(0, 0, width, height);// 使用 Graphics2D 上下文的设置,填充 Shape

// 的内部区域。

if (width == itemp.getWidth(null))

g.drawImage(itemp, 0, (height - itemp.getHeight(null)) / 2,

itemp.getWidth(null), itemp.getHeight(null),

Color.white, null);

else

g.drawImage(itemp, (width - itemp.getWidth(null)) / 2, 0,

itemp.getWidth(null), itemp.getHeight(null),

Color.white, null);

g.dispose();

itemp = image;

}

ImageIO.write((BufferedImage) itemp, "JPEG", new File(result)); // 输出压缩图片

} catch (IOException e) {

e.printStackTrace();

}

}

/**

 * 裁剪图片方法

 * 

 * @param bufferedImage

 *            图像源

 * @param startX

 *            裁剪开始x坐标

 * @param startY

 *            裁剪开始y坐标

 * @param endX

 *            裁剪结束x坐标

 * @param endY

 *            裁剪结束y坐标

 * @return

 */

public static BufferedImage cropImage(BufferedImage bufferedImage,

int startX, int startY, int endX, int endY) {

int width = bufferedImage.getWidth();

int height = bufferedImage.getHeight();

if (startX == -1) {

startX = 0;

}

if (startY == -1) {

startY = 0;

}

if (endX == -1) {

endX = width - 1;

}

if (endY == -1) {

endY = height - 1;

}

BufferedImage result = new BufferedImage(endX - startX, endY - startY,

4);

for (int x = startX; x  endX; ++x) {

for (int y = startY; y  endY; ++y) {

int rgb = bufferedImage.getRGB(x, y);

result.setRGB(x - startX, y - startY, rgb);

}

}

return result;

}

public static void main(String[] args) throws IOException {

File input = new File("input.jpg");

BufferedImage img = ImageIO.read(input);

cropImage(img, 10, 10, 20, 20);

File output = new File("output.jpg");

ImageIO.write(img, "jpg", output);

}

}

关于图片剪切java和图片剪切拼接软件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。