「javaimage工具」javaimage类

博主:adminadmin 2023-01-13 23:06:06 371

本篇文章给大家谈谈javaimage工具,以及javaimage类对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求一款功能强大的函数图像生成软件?

一款功能强大的函数图像生成软件是Image J。

ImageJ是一款基于 java的,由 National Institutes of Health(NIH)开发的一款功能强大的图像处理软件,在科研中应用极为广泛。

最最关键的,这款软件是完完全全免费的!而且前人已经开发出了许许多多,针对不同需求的插件,可以直接安装调用。

扩展资料:

ImageJ一款基于java的科学图像处理工具,适用于win、mac、linux等不同的版本,具有:

1、显示,编辑,分析,处理,保存,打印8位,16位,32位图片的功能;

2、支持TIFF, PNG, GIF, JPEG, BMP, DICOM, FITS等格式;

3、可打开任意多图像;

4、放旋转,扭曲,平滑 ;

5、图片的区域和像素统计,间距,角度计算,创建柱状图和剖面图,傅里叶变换等。

怎样使用java读取image

这是一个图片压缩代码,以前入职的时候照片必须得20k一下,所以我把100多k的照片压缩成了16k,你可以看一下

package com.atee.test;

import java.awt.image.BufferedImage;

import java.awt.image.ColorModel;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import javax.imageio.IIOImage;

import javax.imageio.ImageIO;

import javax.imageio.ImageWriteParam;

import javax.imageio.ImageWriter;

public class ImageShrink {

public static boolean compressPic(String srcFilePath, String descFilePath) throws IOException {

File file = null;

BufferedImage src = null;

FileOutputStream out = null;

ImageWriter imgWrier;

ImageWriteParam imgWriteParams;

// 指定写图片的方式为 jpg

imgWrier = ImageIO.getImageWritersByFormatName("jpg").next();

imgWriteParams = new javax.imageio.plugins.jpeg.JPEGImageWriteParam(

null);

// 要使用压缩,必须指定压缩方式为MODE_EXPLICIT

imgWriteParams.setCompressionMode(imgWriteParams.MODE_EXPLICIT);

// 这里指定压缩的程度,参数qality是取值0~1范围内,

imgWriteParams.setCompressionQuality((float) 0.7);

imgWriteParams.setProgressiveMode(imgWriteParams.MODE_DISABLED);

ColorModel colorModel =ImageIO.read(new File(srcFilePath)).getColorModel();// ColorModel.getRGBdefault();

// 指定压缩时使用的色彩模式

// imgWriteParams.setDestinationType(new javax.imageio.ImageTypeSpecifier(

// colorModel, colorModel.createCompatibleSampleModel(16, 16)));

imgWriteParams.setDestinationType(new javax.imageio.ImageTypeSpecifier(

colorModel, colorModel.createCompatibleSampleModel(16, 16)));

try {

if (isBlank(srcFilePath)) {

return false;

} else {

file = new File(srcFilePath);System.out.println(file.length());

src = ImageIO.read(file);

out = new FileOutputStream(descFilePath);

imgWrier.reset();

// 必须先指定 out值,才能调用write方法, ImageOutputStream可以通过任何

// OutputStream构造

imgWrier.setOutput(ImageIO.createImageOutputStream(out));

// 调用write方法,就可以向输入流写图片

imgWrier.write(null, new IIOImage(src, null, null),

imgWriteParams);

out.flush();

out.close();

}

} catch (Exception e) {

e.printStackTrace();

return false;

}

return true;

}

public static boolean isBlank(String string) {

if (string == null || string.length() == 0 || string.trim().equals("")) {

return true;

}

return false;

}

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

compressPic("C:\\358x441 - 111.jpg", "C:\\358x441 - 333.jpg");

}

}

求java中Image类的使用,最好能有几个简单的例子,不要给我什么帮助文档啊,我自己有帮助文档。

这个是生成随即图片验证码的例子

package org.web.servlet;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.image.BufferedImage;

import java.io.IOException;

import java.util.Random;

import javax.imageio.ImageIO;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

public class RandomCode extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = -8636059798367365083L;

public static final String RANDOMCODE = "RANDOMCODE";//session定义

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

this.doPost(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

response.setHeader("Pragma", "No-cache");

response.setHeader("Cache-Control", "No-cache");

response.setDateHeader("Expires", 0);

int width = 80, height = 23;

BufferedImage img = new BufferedImage(width, height,

BufferedImage.TYPE_INT_RGB);

Random random = new Random();

Graphics g = img.getGraphics();

g.setColor(getRandColor(200, 250));

g.fillRect(0, 0, width, height);

// 设定字体

g.setFont(new Font("Verdana", Font.ITALIC + Font.PLAIN, 18));

// 设定随机字体

//设置背景颜色

//g.setColor(new Color(random.nextInt(250),random.nextInt(250),random.nextInt(250)));

// 画边框

g.setColor(new Color(33, 66, 99));

g.drawRect(0, 0, width - 1, height - 1);

// 随机产生50条干扰线,使图象中的认证码不易被其它程序探测到

//g.setColor(getRandColor(100, 150));

g.setColor(new Color(200,200,200));

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

int x = random.nextInt(width);

int y = random.nextInt(height);

int xl = random.nextInt(12);

int yl = random.nextInt(12);

g.drawLine(x, y, x + xl, y + yl);

}

String[] randStr = {"0","1","2","3","4","5","6","7","8","9",

"A","B","C","D","E","F","G","H","I","J","K",

"L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};

// 取随机产生的认证码(6位数字)

String sRand = "";

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

String rand = String.valueOf(randStr[random.nextInt(randStr.length-1)]);

sRand += rand;

// 将认证码显示到图象中

// 设置字体颜色

//g.setColor(this.getRandColor(40, 60));

g.setColor(new Color(random.nextInt(100),random.nextInt(100),random.nextInt(100)));

g.drawString(rand, 13 * i + 6, 16);

}

// 将认证码存入SESSION

HttpSession session = request.getSession();

session.setAttribute(RandomCode.RANDOMCODE, sRand);

// 释放图形上下文

g.dispose();

// 输出图象到页面

ImageIO.write(img, "JPEG", response.getOutputStream());

}

private Color getRandColor(int fc, int bc) {

Random random = new Random();

if (fc 255) {

fc = 255;

}

if (bc 255) {

bc = 255;

}

int r = fc + random.nextInt(bc - fc);

int g = fc + random.nextInt(bc - fc);

int b = fc + random.nextInt(bc - fc);

return new Color(r, g, b);

}

}

关于java里image的用法

先要设置图片路径,我们将一将背景图片back.jpg放到C盘的img目录下,调用语句如下:

ImageIcon icon=new ImageIcon("C:\\img\\back.jpg),一定要是双反斜杠

然后分别在JComponent里添加图片

JFrame

利用JFrame的一个方法setIconImage(Image image);

由于要用到Image类,所以还得把上面定义的ImageIcon对象转换成Image对象:

Image image=icon.getImage();

然后就可以调用JFrame的setIconImage(image)方法了。

还要注意一点的是,由于有些图片的格式JVM不能识别,所以要转格式,一般为jpg,gif.如把.bmp格式的转换为.jpg,不能简单的把后缀名改了就行,这样照样不能显示。方法很简单,直接用WINDOWS自带的画图工具打开图片,然后另存为时改为.jpg或.gif格式就可以了。

附源代码

import java.awt.Image;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.tree.DefaultTreeCellRenderer;

import javax.swing.tree.DefaultMutableTreeNode;

import javax.swing.JTree;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import java.awt.FlowLayout;

public class ImageTest extends JFrame{

ImageIcon icon=new ImageIcon("c:\\img\\system.jpg");

Image image=icon.getImage();

public ImageTest()

{

JMenuBar mb=new JMenuBar();

this.setJMenuBar(mb);

JMenu menu=new JMenu("system");

menu.setIcon(icon);

//JMenuItem item=new JMenuItem("exit",icon);

JMenuItem item=new JMenuItem(icon);

item.setIcon(icon);

JLabel label=new JLabel(icon);

//label.setIcon(icon);

menu.add(item);

mb.add(menu);

DefaultMutableTreeNode root=new DefaultMutableTreeNode();

DefaultMutableTreeNode node1=new DefaultMutableTreeNode();

DefaultMutableTreeNode node11=new DefaultMutableTreeNode();

DefaultMutableTreeNode node12=new DefaultMutableTreeNode();

DefaultMutableTreeNode node2=new DefaultMutableTreeNode();

DefaultMutableTreeNode node21=new DefaultMutableTreeNode();

root.add(node1);

root.add(node2);

node1.add(node11);

node1.add(node12);

node2.add(node21);

JTree jTree1 = new javax.swing.JTree(root);

DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();

renderer.setOpenIcon(new ImageIcon("C:\\img\\down.jpg")); //展开时节点图标

renderer.setClosedIcon(new ImageIcon("C:\\img\\file.jpg")); //折叠时节点图标

renderer.setLeafIcon(new ImageIcon("C:\\img\\man_small.jpg")); //叶子节点图标

jTree1.setCellRenderer(renderer);

this.add(label);

this.setIconImage(image);

this.add(jTree1);

this.setDefaultCloseOperation(3);

this.setLocation(300,400);

this.pack();

this.setVisible(true);

}

public static void main(String[] args)

{

new ImageTest();

}

}

javaimage工具的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javaimage类、javaimage工具的信息别忘了在本站进行查找喔。