javaimage,javaimageicon縮小圖片

本文目錄一覽:

java image

java image是什麼,讓我們一起了解一下?

Image主要是實現讀取圖片文件(Image.FromFile)和保存圖像文件(Image.Save)。只要將圖片轉為Image類之後,就可以用.Net裡面強大的GDI+功能,但GDI+必須先要創建Graphics。

那麼如何創建Image圖像?

1、通過文件選擇器選擇文件,創建File文件,創建Image圖像。

Image images = new Image();      JFileChooser chooser = new JFileChooser();       chooser.setName(“選擇”);       chooser.setMultiSelectionEnabled(false);     //設置文件選擇器只能選擇單個文件       int result = chooser.showOpenDialog(this);   //打開文件選擇器                if(result == JFileChooser.APPROVE_OPTION){             File file = chooser.getSelectedFile();               try{                                 //對異常進行處理                  images = ImageIO.read(file);               }catch(IOException e){                  e.printStackTrace();               }       }

2、通過Toolkit工具中的函數創建Image圖像。 Image images = new Image(); Toolkit tool = Toolkit.getDefaultToolkit(); images = tool.getImage(“1.gif”);//字元串為絕對路徑或相對路徑

關於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怎麼獲取圖片的長寬

通過getHeight和getwidth方法獲取長和寬

比如:

System.out.println(“圖片長度:”+image.getHeight());  

System.out.println(“圖片寬度:”+image.getWidth());

補充:

Image是一個抽象列,BufferedImage是Image的實現。 

Image和BufferedImage的主要作用就是將一副圖片載入到內存中,在內存中能對圖片的信息進行獲取。

怎樣使用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:\\358×441 – 111.jpg”, “C:\\358×441 – 333.jpg”);

}

}

怎麼把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 – 如果在寫入過程中發生錯誤。

即可

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/258127.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:48
下一篇 2024-12-15 12:48

相關推薦

  • 用Python繪製酷炫圖片

    在本篇文章中,我們將展示如何使用Python繪製酷炫的圖片。 一、安裝Python繪圖庫 在使用Python繪製圖片之前,我們需要先安裝Python繪圖庫。Python有很多繪圖庫…

    編程 2025-04-29
  • 使用axios獲取返回圖片

    使用axios獲取返回圖片是Web開發中很常見的需求。本文將介紹如何使用axios獲取返回圖片,並從多個方面進行詳細闡述。 一、安裝axios 使用axios獲取返回圖片前,首先需…

    編程 2025-04-29
  • Python 圖片轉表格

    本文將詳細介紹如何使用Python將圖片轉為表格。大家平時在處理一些資料的時候難免會遇到圖片轉表格的需求。比如從PDF文檔中提取表格等場景。當然,這個功能也可以通過手動複製、粘貼,…

    編程 2025-04-29
  • Python緩存圖片的處理方式

    本文將從多個方面詳細闡述Python緩存圖片的處理方式,包括緩存原理、緩存框架、緩存策略、緩存更新和緩存清除等方面。 一、緩存原理 緩存是一種提高應用程序性能的技術,在網路應用中流…

    編程 2025-04-29
  • Python如何抓取圖片數據

    Python是一門強大的編程語言,能夠輕鬆地進行各種數據抓取與處理。抓取圖片數據是一個非常常見的需求。在這篇文章中,我們將從多個方面介紹Python如何抓取圖片數據。 一、使用ur…

    編程 2025-04-29
  • Avue中如何按照後端返回的鏈接顯示圖片

    Avue是一款基於Vue.js、Element-ui等技術棧的可視化開發框架,能夠輕鬆搭建前端頁面。在開發中,我們使用到的圖片通常都是存儲在後端伺服器上的,那麼如何使用Avue來展…

    編程 2025-04-28
  • Python利用Image加圖片的方法

    在Python中,利用Image庫可以快速處理圖片,並加入需要的圖片,本文將從多個方面詳細闡述這個操作。 一、Image庫的安裝和基礎操作 首先,我們需要在Python中安裝Ima…

    編程 2025-04-28
  • 使用CKSlide實現圖片輪播

    CKSlide是一個基於jQuery的插件,可以方便地為網頁添加幻燈片和圖片輪播效果。使用CKSlide可以讓網站更加生動、活潑,給用戶帶來更好的體驗。 一、CKSlide基本用法…

    編程 2025-04-28
  • Python中使用socket傳輸圖片

    本文將從多個方面介紹如何使用Python中的socket模塊傳輸圖片,涉及到準備工作、發送方部分和接收方部分的詳細代碼實現。 一、準備工作 在使用Python中的socket模塊進…

    編程 2025-04-28
  • Python窗口中導入圖片

    Python作為一種高級語言,在圖形界面的應用和操作方面越來越得心應手。本篇文章將詳細闡述Python窗口中導入圖片的方法和實現。 一、導入圖片的準備工作 在導入圖片前,我們需要先…

    編程 2025-04-28

發表回復

登錄後才能評論