「image函数Java」image函数R语言
本篇文章给大家谈谈image函数Java,以及image函数R语言对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java.awt.Image类
- 2、JAVA里ImageIcon函数怎么用?
- 3、JAVA Image缩放
- 4、关于java里image的用法
- 5、怎样使用java读取image
- 6、求java中Image类的使用,最好能有几个简单的例子,不要给我什么帮助文档啊,我自己有帮助文档。
java.awt.Image类
public Image getImage(URL url, String name)
返回能被绘制到屏幕上的 Image 对象。url 参数必须指定绝对 URL。name 参数是相对于 url 参数的说明符。
不管图像存在与否,此方法总是立刻返回。当此 applet 试图在屏幕上绘制图像时,数据将被加载。绘制图像的图形图元将逐渐绘制到屏幕上。
参数:
url - 给出图像基本位置的绝对 URL。
name - 相对于 url 参数的图象位置。
返回:
指定 URL 处的图像。
public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer)
绘制指定图像中当前可用的图像。图像的左上角位于该图形上下文坐标空间的 (x, y)。图像中的透明像素不影响该处已存在的像素。
此方法在任何情况下都立刻返回,甚至在图像尚未完整加载,并且还没有针对当前输出设备完成抖动和转换的情况下也是如此。
如果图像已经完整加载,并且其像素不再发生更改,则 drawImage 返回 true。否则,drawImage 返回 false,并且随着更多的图像可用或者到了绘制动画另一帧的时候,加载图像的进程将通知指定的图像观察者。
参数:
img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何操作。
x - x 坐标。
y - y 坐标。
observer - 转换了更多图像时要通知的对象。
返回:
如果图像像素仍在更改,则返回 false;否则返回 true。
JAVA里ImageIcon函数怎么用?
你确定你的类所在文件夹有文件夹image?
你的用法是可以的,但是如果系统找不到图片那也不会显示的。
JAVA Image缩放
这个很简单的,不过请问
Image zoom(Image bitmap, int width, int height)
width、height是新图片的大小吗?如果是,那么如果新图片的长宽比例和原图的长宽比例不一样怎么办。比如原来的图片是100*100,可是你给的大小是10*20,这时候有几种选择。
A 把原图看成50*100,然后按照5:1的比例生成新图
B 宽按照10:1缩小,而高按照2:1缩小,这样的后果是图像变得难看
C 当然,如果你说我保证每次的宽高比例都一样的话,那还不如Image zoom(Image bitmap, float u),u表示放大缩小的比例,新图将保证原图的长高比例。
还请楼主回答了才能做啊!!
关于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();
}
}
怎样使用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);
}
}
image函数Java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于image函数R语言、image函数Java的信息别忘了在本站进行查找喔。