❶ 我用BufferedImage方法讀入了一張圖片,現在我想將這張圖片改變成640*380的大小再使用,該怎麼辦
可以用 java.awt.geom.AffineTransform , 具體方法如下.
(width是新的長度,height是新的高度,image是改變大小之後的圖片,source是原本從文件中讀入的圖片)
int width = 640;
int height = 380;
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
AffineTransform at = AffineTransform.getScaleInstance(
(double) width / source.getWidth(),
(double) height / source.getHeight());
g.drawRenderedImage(source, at);
❷ 怎麼用java從文件中讀取圖片和寫入圖片到文件里
在Java中,要從文件讀取圖片並寫入到另一個文件,可以使用Java的awt和javax.imageio包。下面是一個簡單的例子,展示如何讀取一個名為"supermaket1.jpg"的圖片文件,並將其寫入到另一個文件中。
首先,你需要導入必要的包。具體來說,需要導入Java.awt.Image、Java.awt.image.BufferedImage、Java.awt.image.RenderedImage和javax.imageio.ImageIO,以及Java.io.*。這可以通過在類的頂部添加如下導入語句實現:
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import javax.imageio.ImageIO;
import java.io.*;
然後,定義一個名為image的類,並在main方法中實現具體邏輯。首先創建一個Image數組,大小為10。接著,使用ImageIO.read方法從指定路徑讀取圖片,並將其賦值給Image類型的變數image。這里以"supermaket1.jpg"為例。
Image[] array = new Image[10];
Image image = ImageIO.read(new File("c:\\supermaket1.jpg"));//這里是你要讀取的圖像文件
接著,使用ImageIO.write方法將讀取到的圖片寫入到另一個文件中。這里假設目標文件名為"test.txt",並且需要將其保存為png格式。如果目標文件不存在,系統會自動創建它。
array[0] = image;
ImageIO.write((RenderedImage) image, "png", new File("f:\\test.txt"));//這里是你要寫入的文件,如果不存在這個文件,那麼系統會自動創建它
這個例子展示了如何使用Java的基本圖像處理功能。通過簡單的幾行代碼,就可以實現圖片的讀取與寫入操作。
❸ java awt 中如何向panel中添加圖片,急。。。。。
創建一個Panel的子類,比如ImgPanel:
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.Image;
import java.awt.Panel;
public class ImgPanel extends Panel {
Image img;
public ImgPanel(Image img){
this.img = img;
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawImage(img, 20,20,40,40, this);//其中第二到第五個參數分別為x,y,width,height
}
}
然後在別的地方添加這個ImgPanel控制項就好了,比如:
Panel p = new ImgPanel(Toolkit.getDefaultToolkit().createImage("A:\\projects\\gui\\lightbulb.jpg")));
p.setBounds(0, 0, 80, 80);
this.add(p);
❹ 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對話框上顯示圖片
其實有很多種方法可以解決圖片顯示大小的問題:
使用photoshop修改. 優點是可以節省系統資源, 顯示圖片的時候,不用做處理,缺點是需要了解ps的基本操作
使用JDialog 自定義對話框. 優點 可以實現復雜的效果, 缺點,代碼量比較多
使用ImageIcon, Image 類 實現圖片的縮放,. 優點: 純java代碼解決, 缺點: 如果大量的圖片需要縮放, 那麼可能影響程序的速度.
方案3的代碼如下
importjava.awt.Image;
importjavax.swing.ImageIcon;
importjavax.swing.JOptionPane;
publicclassTest{
publicstaticvoidmain(String[]args){
ImageIconicon=newImageIcon("imgs/1.png");//得到icon對象.注意我的圖片地址和你的不一樣,注意修改!!
Imageimage=icon.getImage();//icon--->Image
floatscale=0.5f;//縮放比例50%
intwidth=Math.round(icon.getIconWidth()*scale);//變小50%的寬
intheight=Math.round(icon.getIconHeight()*scale);//變小50%的高
ImageminiIcon=image.getScaledInstance(width,height,Image.SCALE_SMOOTH);
//image變成指定大小.縮放模式為SCALE_SMOOTH(平滑優先)
ImageIconsmallIcon=newImageIcon(miniIcon);//Image--->icon
JOptionPane.showInputDialog(null,"吃了嗎?","標題",0,smallIcon,null,"默認值");
}
}
效果圖
圖1 圖片顯示比例為原圖的50%
❻ java.awt的類摘要
AlphaComposite AlphaComposite 類實現一些基本的 alpha 合成規則,將源色與目標色組合,在圖形和圖像中實現混合和透明效果。 AWTEvent 所有 AWT 事件的根事件類。 AWTEventMulticaster AWTEventMulticaster 實現對 java.awt.event 包中定義的 AWT 事件的指派,該指派是有效的、線程安全的多路廣播事件指派。 AWTKeyStroke AWTKeyStroke 表示鍵盤(或等效輸入設備)上的鍵操作。 AWTPermission 此類用於 AWT 許可權。 BasicStroke BasicStroke 類定義針對圖形圖元輪廓呈現屬性的一個基本集合,這些圖元使用Graphics2D對象呈現,而該對象的 Stroke 屬性設置為此 BasicStroke。 BorderLayout 這是一個布置容器的邊框布局,它可以對容器組件進行安排,並調整其大小,使其符合下列五個區域:北、南、東、西、中。 BufferCapabilities 緩沖區的能力和屬性。 BufferCapabilities.FlipContents 頁面翻轉後可能的後台緩沖區內容的一個類型安全的枚舉 Button 此類創建一個標簽按鈕。 Canvas Canvas 組件表示屏幕上一個空白矩形區域,應用程序可以在該區域內繪圖,或者可以從該區域捕獲用戶的輸入事件。 CardLayout CardLayout 對象是容器的布局管理器。 Checkbox 復選框是一個可處於「開」(true) 或「關」(false) 狀態的圖形組件。 CheckboxGroup CheckboxGroup 類用於集合 Checkbox 按鈕集。 CheckboxMenuItem 此類表示一個可包括在菜單中的復選框。 Choice Choice 類表示一個彈出式選擇菜單。 Color Color 類用於封裝默認 sRGB 顏色空間中的顏色,或者用於封裝由ColorSpace標識的任意顏色空間中的顏色。 Component component是一個具有圖形表示能力的對象,可在屏幕上顯示,並可與用戶進行交互。 ComponentOrientation ComponentOrientation 類封裝語言敏感的方向,用於排序組件或文本內容。 Container 一般的 Abstract Window Toolkit(AWT) 容器對象是一個可包含其他 AWT 組件的組件。 Cursor 封裝滑鼠游標的點陣圖表示形式的類。 DefaultKeyboardFocusManager AWT 應用程序的默認 KeyboardFocusManager。 Desktop Desktop 類允許 Java 應用程序啟動已在本機桌面上注冊的關聯應用程序,以處理URI或文件。 Dialog Dialog 是一個帶標題和邊界的頂層窗口,邊界一般用於從用戶處獲得某種形式的輸入。 Dimension Dimension 類封裝單個對象中組件的寬度和高度(精確到整數)。 DisplayMode DisplayMode 類封裝 GraphicsDevice 的位深、高度、寬度和刷新率。 Event 註:Event 類已廢棄,只可用於向後兼容。 EventQueue EventQueue 是一個與平台無關的類,它將來自於底層同位體類和受信任的應用程序類的事件列入隊列。 FileDialog FileDialog 類顯示一個對話框窗口,用戶可以從中選擇文件。 FlowLayout 流布局用於安排有向流中的組件,這非常類似於段落中的文本行。 FocusTraversalPolicy FocusTraversalPolicy 定義一種順序,按此順序遍歷具有特定焦點循環根的 Component。 Font Font 類表示字體,可以使用它以可見方式呈現文本。 FontMetrics FontMetrics 類定義字體規格對象,該對象封裝將在特定屏幕上呈現特定字體的有關信息。 Frame Frame 是帶有標題和邊框的頂層窗口。 GradientPaint GradientPaint 類提供了使用線性顏色漸變模式填充Shape的方法。 Graphics Graphics 類是所有圖形上下文的抽象基類,允許應用程序在組件(已經在各種設備上實現)以及閉屏圖像上進行繪制。 Graphics2D 此 Graphics2D 類擴展Graphics類,以提供對幾何形狀、坐標轉換、顏色管理和文本布局更為復雜的控制。 GraphicsConfigTemplate GraphicsConfigTemplate 類用於獲得有效的GraphicsConfiguration。 GraphicsConfiguration GraphicsConfiguration 類描述圖形目標(如列印機或監視器)的特徵。 GraphicsDevice GraphicsDevice 類描述可以在特定圖形環境中使用的圖形設備。 GraphicsEnvironment GraphicsEnvironment 類描述了 Java(tm) 應用程序在特定平台上可用的GraphicsDevice對象和Font對象的集合。 GridBagConstraints GridBagConstraints 類指定使用 GridBagLayout 類布置的組件的約束。 GridBagLayout GridBagLayout 類是一個靈活的布局管理器,它不要求組件的大小相同便可以將組件垂直、水平或沿它們的基線對齊。 GridBagLayoutInfo GridBagLayoutInfo 是 GridBagLayout 布局管理器的一個實用工具類。 GridLayout GridLayout 類是一個布局處理器,它以矩形網格形式對容器的組件進行布置。 Image 抽象類 Image 是表示圖形圖像的所有類的超類。 ImageCapabilities 圖像的功能和屬性。 Insets Insets 對象是容器邊界的表示形式。 JobAttributes 控制列印作業的屬性集合。 JobAttributes.DefaultSelectionType 可能的默認選擇狀態的類型安全的枚舉。 JobAttributes.DestinationType 可能的作業目標的類型安全枚舉。 JobAttributes.DialogType 顯示給用戶的可能對話框的類型安全枚舉。 JobAttributes.MultipleDocumentHandlingType 可能的多副本處理狀態的類型安全枚舉。 JobAttributes.SidesType 可能的多頁整版的類型安全枚舉。 KeyboardFocusManager KeyboardFocusManager 負責管理激活狀態的聚焦 Window 和當前焦點所有者。 Label Label 對象是一個可在容器中放置文本的組件。 LinearGradientPaint LinearGradientPaint 類提供利用線性顏色漸變模式填充Shape的方式。 List List 組件為用戶提供了一個可滾動的文本項列表。 MediaTracker MediaTracker 類是一個跟蹤多種媒體對象狀態的實用工具類。 Menu Menu 對象是從菜單欄部署的下拉式菜單組件。 MenuBar MenuBar 類封裝綁定到框架的菜單欄的平台概念。 MenuComponent 抽象類 MenuComponent 是所有與菜單相關的組件的超類。 MenuItem 菜單中的所有項必須屬於類 MenuItem 或其子類之一。 MenuShortcut 表示 MenuItem 鍵盤加速器的 MenuShortcut 類。 MouseInfo MouseInfo 提供獲取有關滑鼠信息的方法,如滑鼠指針位置和滑鼠按鈕數。 MultipleGradientPaint 這是 Paints 的超類,它使用多個顏色漸變來填充它們的光柵。 PageAttributes 用來控制列印頁面輸出的屬性集。 PageAttributes.ColorType 可能顏色狀態的類型安全的枚舉。 PageAttributes.MediaType 可能的紙張大小的類型安全的枚舉。 PageAttributes.OrientationRequestedType 可能列印方向的類型安全的枚舉。 PageAttributes.OriginType 可能原點的類型安全的枚舉。 PageAttributes.PrintQualityType 可能的列印質量的類型安全的枚舉。 Panel Panel 是最簡單的容器類。 Point 表示 (x,y) 坐標空間中的位置的點,以整數精度指定。 PointerInfo 描述指針位置的類。 Polygon Polygon 類封裝了坐標空間中封閉的二維區域的描述。 PopupMenu 此類實現能夠在組件中的指定位置上動態彈出的菜單。 PrintJob 啟動並執行列印作業的抽象類。 RadialGradientPaint RadialGradientPaint 類提供使用圓形輻射顏色漸變模式填充某一形狀的方式。 Rectangle Rectangle 指定坐標空間中的一個區域,通過坐標空間中 Rectangle 對象左上方的點 (x,y)、寬度和高度可以定義這個區域。 RenderingHints RenderingHints 類定義和管理鍵和關聯值的集合,它允許應用程序將輸入提供給其他類使用的演算法選擇,這些類執行呈現和圖像處理服務。 RenderingHints.Key 定義與RenderingHints一起使用的、用來控制呈現和圖像管線中各種演算法選擇的所有鍵的基本類型。 Robot 此類用於為測試自動化、自運行演示程序和其他需要控制滑鼠和鍵盤的應用程序生成本機系統輸入事件。 Scrollbar Scrollbar 類描述了一個滾動條,這是大家都很熟悉的用戶界面對象。 ScrollPane 實現用於單個子組件的自動水平和/或垂直滾動的容器類。 ScrollPaneAdjustable 此類表示 ScrollPane 的水平或垂直滾動條的狀態。 SplashScreen 在 Java 虛擬機 (JVM) 啟動之前,可以在應用程序啟動時創建閃現屏幕。 SystemColor 封裝表示系統中本機 GUI 對象顏色的象徵性顏色的類。 SystemTray SystemTray 類表示桌面的系統托盤。 TextArea TextArea 對象是顯示文本的多行區域。 TextComponent TextComponent 類是所有允許編輯文本的組件的超類。 TextField TextField 對象是允許編輯單行文本的文本組件。 TexturePaint TexturePaint 類提供一種用被指定為BufferedImage的紋理填充Shape的方式。 Toolkit 此類是所有 Abstract Window Toolkit 實際實現的抽象超類。 TrayIcon TrayIcon 對象表示可以添加到系統托盤的托盤圖標。 Window Window 對象是一個沒有邊界和菜單欄的頂層窗口。
❼ 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。