「image函数Java」image函数R语言

博主:adminadmin 2023-01-18 06:39:11 336

本篇文章给大家谈谈image函数Java,以及image函数R语言对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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的信息别忘了在本站进行查找喔。