本文目錄一覽:
- 1、java如何讀取文件夾中的圖片並在界面顯示
- 2、java imageIO 讀取圖片問題
- 3、java 怎麼一次性讀取多張圖片
- 4、Java如何讀取文件夾中所有圖片,並顯示出來
- 5、用java怎麼讀取圖片
- 6、怎麼用java從文件中讀取圖片和寫入圖片到文件里
java如何讀取文件夾中的圖片並在界面顯示
下面給你提供一個實現,該實現採用了代理模式。這個實現包含兩個文件,分別是Client.java和ImageIcoProxy.java,ImageIcoProxy.java負責了圖片的延遲載入,你可以修改為不延遲即可。
Client.java的代碼為:
import java.awt.Graphics;
import java.awt.Insets;
import javax.swing.Icon;
import javax.swing.JFrame;
public class Client extends JFrame {
private static int IMG_WIDTH = 510;
private static int IMG_HEIGHT = 317;
private Icon imgProxy = null;
public static void main(String[] args) {
Client app = new Client();
app.setVisible(true);
}
public Client() {
super(“Virture Proxy Client”);
imgProxy = new ImageIcoProxy(“D:/test.jpg”, IMG_WIDTH, IMG_HEIGHT);
this.setBounds(100, 100, IMG_WIDTH + 10, IMG_HEIGHT + 30);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g) {
super.paint(g);
Insets insets = getInsets();
imgProxy.paintIcon(this, g, insets.left, insets.top);
}
}
ImageIcoProxy.java的代碼為:
import java.awt.Component;
import java.awt.Graphics;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.SwingUtilities;
public class ImageIcoProxy implements Icon {
private ImageIcon realIcon = null;
private String imgName;
private int width;
private int height;
boolean isIconCreated = false;
public ImageIcoProxy(String imgName, int width, int height) {
this.imgName = imgName;
this.width = width;
this.height = height;
}
public int getIconHeight() {
return realIcon.getIconHeight();
}
public int getIconWidth() {
return realIcon.getIconWidth();
}
public void paintIcon(final Component c, Graphics g, int x, int y) {
if (isIconCreated) {
//已經載入了圖片,直接顯示
realIcon.paintIcon(c, g, x, y);
g.drawString(“Just Test”, x + 20, y + 370);
} else {
g.drawRect(x, y, width-1, height-1);
g.drawString(“Loading photo…”, x+20, y+20);
synchronized(this) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
Thread.currentThread().sleep(2000);
realIcon = new ImageIcon(imgName);
isIconCreated = true;
} catch (Exception e) {
e.printStackTrace();
}
c.repaint();
}
}
);
}
}
}
}
java imageIO 讀取圖片問題
試了一下,這張jpg圖片中含有大量的元數據(註解數據),結構複雜,導致java讀取錯誤。
可用畫圖等圖片編輯軟體「另存為」或者「導出」一下,同時去掉元數據。
就可以被ImageIO讀取
java 怎麼一次性讀取多張圖片
實現思路:一次性讀取選中的統一路徑下的多張圖片,實現整體複製。
//複製文件夾
package com.cdd.util;
import java.io.*;
public class FileUtil {
private static void copy(File[] files, File d) {
if (!d.exists()) //如果指定目錄不存在
d.mkdir(); //創建目錄
for (int i = 0; i files.length; i++) { //循環遍歷要複製的文件夾
if (files[i].isFile()) { //如果文件夾中是文件
try {
FileInputStream fis = new FileInputStream(files[i]); //創建FileInputStream對象
FileOutputStream out = new FileOutputStream(new File(d
.getPath()
+ File.separator + files[i].getName())); //複製後文件的保存路徑
int count = fis.available();
byte[] data = new byte[count];
while ((str = bre.readLine())!= null) //讀取文件通過readline方法可以有效的避免亂碼
out.write(str ); //將讀取的信息寫入文件中
}
out.close(); //關閉流
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (files[i].isDirectory()) { //如果文件夾中是一個路徑
File des = new File(d.getPath() + File.separator
+ files[i].getName()); //在複製後路徑中創建子文件夾
des.mkdir();
copy(files[i].listFiles(), des); //再次調用本方法
}
}
System.out.println(“文件夾複製成功”);
}
Java如何讀取文件夾中所有圖片,並顯示出來
說一下思路吧,首先遍歷文件夾,找到對應後綴的文件(png,jpg之類的),然後創建Bitmap對象,使用inputStream將文件轉成bitmap對象,之後使用imageview或者GLview顯示圖片即可。
注意對大圖進行壓縮,結束時圖片必須回收處理,bitmap.recycle()否則圖片多了內存溢出
用java怎麼讀取圖片
思路:使用 java.awt.Image包下的Image可以接收圖片。讀取則使用ImageIO對象。
代碼如下:
/**
* 讀取圖片,首先導入以下的包
*/
import java.awt.Image;
import javax.imageio.ImageIO;
import java.io.*;
/**
* 用Image對象來接收圖片
* 路徑根據實際情況修改
*/
Image image = ImageIO.read(new File(“c:\\1.png”));
System.out.println(image.getSource());
怎麼用java從文件中讀取圖片和寫入圖片到文件里
首先導入各種需要的包:
import java.awt.Image;
import javax.imageio.ImageIO;
import java.io.*;
讀取圖片的方法如下:
Image[] array = new Image[10];
Image image = ImageIO.read(new File(“d:\\source.gif”));//根據你實際情況改文件路徑吧
array[0] = image;
圖片讀出來了。
如果你有一個Image對象,想把它寫入文件可以這樣做:
BufferedImage image = ImageIO.read(new File(“d:\\source.gif”));
//要想保存這個對象的話你要把image聲明為BufferedImage 類型
ImageIO.write(image, “png”, new File(“f:\\test.png”));
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/192444.html