「javaimage工具」javaimage类
本篇文章给大家谈谈javaimage工具,以及javaimage类对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、求一款功能强大的函数图像生成软件?
- 2、怎样使用java读取image
- 3、求java中Image类的使用,最好能有几个简单的例子,不要给我什么帮助文档啊,我自己有帮助文档。
- 4、关于java里image的用法
求一款功能强大的函数图像生成软件?
一款功能强大的函数图像生成软件是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工具的信息别忘了在本站进行查找喔。