㈠ java 關於BufferedImage類繪制圖片的問題。
BufferedImage bim=new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);
bim= ImageIO.read(new URL("001.bmp"));
Graphics g=bim.getGraphics();
g.drawImage(bim, 0, 0, null);
或者
ImageIcon p=new ImageIcon(this.getClass()
.getResource("title.png"));
int i=p.getIconHeight();
int j=p.getIconWidth();
p.setDescription("");
具體裡面的方法去api 看看 有畫筆和設置尺寸的,獲版取權尺寸的
㈡ 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從文件中讀取圖片和寫入圖片到文件里
在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 中在代碼中要引用的圖片該放在哪個文件
放到任意文件夾都可以,看你的管理方式。
1、放到和程序目錄下的某個文回件夾中。答
//假設圖片放到程序運行目錄的img目錄下
BufferedImageimg=ImageIO.read(newFile("img/my.png"));
2、放到源文件中,和讀取類在同一目錄,使用時圖片要按包名打包到jar中
//假設圖片放到src下,和MyImages在一個目錄
BufferedImageimg=ImageIO.read(MyImages.class.getResource("my.png"));
3、放到源文件中,但在獨立文件夾中,使用時圖片要按包名打包到jar中
//假設圖片放到src下的img目錄中
BufferedImageimg=ImageIO.read(MyImages.class.getResource("res/my.png"));
㈤ Java 如何載入圖片到graphics2D上,用Image類好還是BufferedImage類好
一般都用那個bufferImage,下面是一個例子程序:
img = ImageIO.read(new File("img1.jpg"));
int width=img.getWidth();
int height=img.getHeight();
int type = img.getColorModel().getTransparency();
BufferedImage image1 = new BufferedImage(width, height, type);
Graphics2D graphics2D = image1.createGraphics();
graphics2D.setRenderingHint(
RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.setColor(Color.black);
graphics2D.fillRect(20, 20, 160, 160);
graphics2D.rotate(Math.toRadians(30),width/2,height/2);
graphics2D.drawImage(img, 10, 10, 100,100,null);
graphics2D.dispose();
㈥ Java程序中圖片的使用方法
使用圖像根據需要,可以有多種方法。
如果是放在組件中,如JButton、JLabel中,這些組件需要的是Icon介面的圖像,那麼使用ImageIcon類來載入圖像比較好,new
ImageIcon(String
filename)或new
ImageIcon(URL
location)都可以直接載入圖像文件。
甚至你還可以先用IO讀出byte流,也能用byte[]創建ImageIcon。還可以由已有的Image來創建。
更為高級的用法是,你還可以先創建個空的ImageIcon,然後重寫paintIcon(Component,Graphics,int,int)方法實現手工繪制!
如果你是要完成圖像繪制,那麼使用Image或BufferedImage比較好。
Toolkit.getDefaultToolkit().getImage(String或URL)就能載入圖像。
這種方法需要一個圖像觀察者來監視圖像是否載入完成,因為圖像載入是非同步的。通常,你用一個swing組件就可以充當這個角色。不過少用JLabel,因為我有一個程序用JLabel做觀察者CPU佔用率經常90%多,有時不出界面。用JPanel或JFrame都沒出過這個問題。從API文檔看,應該是所有的swing可視組件都實現了觀察者介面。
選了觀察者後,不用刻意觀察載入情況,很簡單的一個方法:swing組件的while(!prepareImage(Image));就可以了。
Image介面是Graphics類繪圖drawImage要用的,所以繪制時應該選這個。
BufferedImage是實現了Image介面的圖像,可以直接操作像索數據!所以利用演算法生成圖像再繪制,或圖像處理可以使用這種方法。如浮雕、反色等。
載入方法是ImageIO類的read方法。