javaimage
『壹』 java如何為image類型賦值
image數據類型是sqlserver中用來存貯變長的二進制數據,取值范圍在跟int數據類型一樣,所以在java中對應的數據類型可以是int,因為是二進制,也可以試試byte[],具體是int還是byte[]好,我沒用過,你可以試試。
『貳』 關於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和BufferedImage的區別是什麼
Image是一個抽象類,BufferedImage是Image的實現類。
Image和BufferedImage的主要作用就是將一副圖片載入到內存中。
BufferedImage 子類描述具有可訪問圖像數據緩沖區的 Image。BufferedImage 由圖像數據的 ColorModel 和 Raster 組成。Raster 的 SampleModel 中 band 的數量和類型必須與 ColorModel 所要求的數量和類型相匹配,以表示其顏色和 alpha 分量。所有 BufferedImage 對象的左上角坐標都為 (0, 0)。因此,用來構造 BufferedImage 的任何 Raster 都必須滿足:minX=0 且 minY=0。
Java將一副圖片載入到內存中的方法是:
String imgPath = "D://demo.bmp";
BufferedImage image = ImageIO.read(new FileInputStream(imgPath));
該方法BufferedImage 可以獲得圖片的詳細信息,例如:獲得圖片的寬度:image.getWidth(null);圖片只有載入內存中才能對圖片進行進一步的處理。
『肆』 怎樣使用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中ImageIcon和Image的區別是什麼
ImageIcon和Image的區別:
ImageIcon:
ImageIcon位於javax.swing包中。可以根據Image繪制Icon(這句話很關鍵),可以使用MediaTracker預載圖像(Image也可以)
構造方法不少,舉幾個常用的:
ImageIcon(Image image);
ImageIcon(String name);
ImageIcon(URL url);
Image:
來自於java.awt包中,抽象類Image是表示圖形圖像的所有類的超類,必須以特定於平台的方式獲取圖像。
它的主要方法是:
Image getScaledInstance(int width,int height,int hints)
『陸』 java中,image是一個圖形對象,從image得到畫筆g,用g畫出的圖形都在image上嗎
對的。 此時的image對象將所有的繪制的圖形的數據都保存在了內存中。
『柒』 怎麼把java中的Image對象保存到硬碟上
javax.imageio.ImageIO
public static boolean write(RenderedImage im,
String formatName,
File output)
throws IOException
使用支持給定格式的任意 ImageWriter 將一個圖像寫入 File。如果已經有一個 File 存在,則丟棄其內容。
參數:
im - 要寫入的 RenderedImage。
formatName - 包含格式的非正式名稱的 String。
output - 將在其中寫入數據的 File。
返回:
如果沒有找到合適的 writer,則返回 false。
拋出:
IllegalArgumentException - 如果任何參數為 null。
IOException - 如果在寫入過程中發生錯誤。
即可
『捌』 Java Image 獲得相對路徑資源方法。
用System.getProperty("user.dir")+"相對的路徑" 即可。
或者直接用
getInstance("images/image-left.jpg");試試。
『玖』 java Image怎麼獲取圖片的長寬
通過getHeight和getwidth方法獲取長和寬
比如:
System.out.println("圖片長度:"+image.getHeight());
System.out.println("圖片寬度:"+image.getWidth());
補充:
Image是一個抽象列,BufferedImage是Image的實現。
Image和BufferedImage的主要作用就是將一副圖片載入到內存中,在內存中能對圖片的信息進行獲取。