台灣最大程式設計社群網站
線上人數
1038
 
會員總數:239938
討論主題:186064
歡迎您免費加入會員
討論區列表 >> Java >> 使用java將圖片寫入eclipse
[ 變換順序 ]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
使用java將圖片寫入eclipse
價值 : 50 QP  點閱數:561 回應數:0

樓主

企鵝
門外漢
0 1
18 0
發送站內信



我想請問各位大大
1.有關將jpg圖片寫入eclipse的時候,怎麼寫可以使用視窗直接可以看到我所想要載入的圖片
2.下列是我所尋找到的程式碼,將這些程式碼寫在eclipse的時候,完全讀不到任何的東西,請問可以告訴我 我哪裡寫錯 需要怎麼修正

這是將jpg圖片讀入eclipse顯示出視窗並轉成灰階的程式碼
code:

package aaaaa;

import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;

public class BMPReader {
public static void main(String[] args) {

try{
BufferedImage image=ImageIO.read(new File("D:\\8bit.jpg"));

}catch(Exception e){
// 在這裡寫出例外處理程式
}
JFrame f= new JFrame("");

String image = null;
JScrollPane scrollPane = new JScrollPane(new JLabel(new ImageIcon(image)));
f.getContentPane().add(scrollPane);
f.pack();

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
class ImageComponent implements Runnable{
// …
ImageComponent(String aFilename){
// 載入圖形的程式碼, 放在這裡 !!
}
public void Show(){
// 要求系統以 “event-dispatching” 執行緒,
// 執行目前物件中 run 方法內的程式碼
SwingUtilities.invokeLater(this);
}
public void run(){
// 建立視窗並且顯示圖形的程式碼, 放在這裡 !!
}
}
String Filename="D:\\8bit.jpg";
ImageComponent image1 =new ImageComponent(Filename); // 載入影像
image1.Show(); // 顯示影像

class ImageComponent1 implements Runnable{
String Filename; // 目前的檔名
BufferedImage image; // 目前的影像
JFrame f; // 目前的視窗
public ImageComponent1(String aFilename){
Filename=aFilename;
image=LoadImage(Filename);
}
// 載入一張影像
public BufferedImage LoadImage(String Filename){
BufferedImage image;
try{
image=ImageIO.read(new File(Filename));
}catch(Exception e){
javax.swing.JOptionPane.showMessageDialog(null,
"載入圖檔錯誤: "+Filename);
image=null;
}
return image;
}
// 顯示一張影像
public void Show(){
SwingUtilities.invokeLater(this);
}
// 實體化影像物件的方法
public void run(){
f = new JFrame("");

// Step 1: 若影像超過螢幕, 則加入捲軸
JScrollPane scrollPane = new JScrollPane(
new JLabel(new ImageIcon(image)));
f.getContentPane().add(scrollPane);
f.pack();

// Step 2: 設定點選 x 表示關閉視窗
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Step 3: 加入視窗標題
f.setTitle(Filename+" "+image.getWidth()+
" x "+image.getHeight());

// Step 4: 設定視窗顯示在螢幕中央
f.setLocationRelativeTo(null);
// Step 5: 顯示出視窗
f.setVisible(true);
}
}

}
public void doGray(){
BufferedImage image = null;
int Height=image.getHeight();
int Width=image.getWidth();
for(int y=0;y<Height;y++){
for(int x=0;x<Width;x++){
int rgb=image.getRGB(x,y);
int r=(rgb&0x00ff0000)>>16; // 取得紅色的資料
int g=(rgb&0x0000ff00)>>8; // 取得綠色資料
int b=rgb&0x000000ff; // 取得藍色資料
int gray=(r+g+b)/3; // 計算灰階值
rgb=(0xff000000|(gray<<16)|(gray<<8)|gray);
image.setRGB(x,y,rgb);
}
}
}
}

如有違規請告訴我!!感謝各位~~




搜尋相關Tags的文章: [ java ] , [ eclipse ] , [ 圖片載入 ] , [ 灰階 ] ,
本篇文章發表於2016-07-31 23:06
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
[ 變換順序 ]   

回覆
如要回應,請先登入.