導航:首頁 > 編程語言 > java獲取圖片的寬高

java獲取圖片的寬高

發布時間:2024-05-13 00:03:56

java 如何獲取圖片的像素值

try{
File _file = new File("C:/Documents and Settings/mayuanfei/My Documents/女友照片.jpg"); //讀入文件
Image src = javax.imageio.ImageIO.read(_file); //構造Image對象
int wideth=src.getWidth(null); //得到源圖寬
int height=src.getHeight(null); //得到源圖長
System.out.println(wideth+","+height);
}catch(Exception e){
e.printStackTrace();
}

㈡ java 中讀取圖片寬度和高度總是為-1,怎麼辦

圖片的寬度和高度一般來說如果你不設定的話,它顯示的是原始大小,一般來說需要自己設定的,如果疑問的話將你的例子寫上來一些,看看。
至於讀取動畫GIF圖片,跟普通圖片一樣,只需要一個"URL"路徑就可以了。

㈢ java 如何將多張JPG圖片合成視頻文件,比如:avi格式 或 mpg格式.

之前有做過圖片合成視頻的功能,大概代碼就是這樣,你可以看一下
/**
* 圖片合成視頻
* @param mp4SavePath 視頻保存路徑
* @param imageDir 圖片地址
* @param rate 這個可以理解成視頻每秒播放圖片的數量
*/
public static boolean jpgToMp4(String mp4SavePath, String imageDir, double rate) {
FFmpegFrameRecorder recorder = null;
boolean flag = true;
try {
File[] files = FileUtils.fileSort(imageDir);
int [] widthArray = new int[files.length];
int [] heightArray = new int[files.length];

/**
* 獲取合成視頻圖片的最大寬高,避免圖片比例不一致最終合成效果差
*/
for (int i = 0; i < files.length; i++) {
BufferedImage bufferedImage = ImageIO.read(files[i]);
widthArray[i] = bufferedImage.getWidth();
heightArray[i] = bufferedImage.getHeight();
}

/**
* 這個方法主要是防止圖片比例達不到視頻合成比例的要求,如果達不到下面條件視頻則會無法播放
* 圖片寬:必須要被32整除
* 圖片高:必須要被2整除
*/
int [] maxWH = getImgMaxWH(widthArray,heightArray);
recorder = new FFmpegFrameRecorder(mp4SavePath,maxWH[0],maxWH[1]);
recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
/**
* 視頻質量:目前測試出來的是25-30最清晰,視頻質量范圍好像是0-40,具體可以自己慢慢測
*/
recorder.setVideoQuality(25);
recorder.setFormat("mp4");
recorder.setFrameRate(rate > 0 ? rate : 1);
recorder.setPixelFormat(0);
recorder.start();

OpenCVFrameConverter.ToIplImage conveter = new OpenCVFrameConverter.ToIplImage();

/**
* 合成視頻
*/
for(int i = 0; i < files.length; i++ ){
opencv_core.IplImage image = cvLoadImage(files[i].getPath());
recorder.record(conveter.convert(image));
opencv_core.cvReleaseImage(image);
}
logger.info("合成成功");
} catch(Exception e) {
e.printStackTrace();
flag = false;
logger.error("合成失敗");
} finally {
try {
if (recorder != null){
recorder.stop();
recorder.release();
}
} catch (FrameRecorder.Exception e) {
e.printStackTrace();
}
}
return flag;
}

㈣ java濡備綍鍒ゆ柇鍥劇墖鏂囦歡鐨勫藉害鍜岄珮搴︼紵

鍒ゆ柇鍥劇墖鏂囦歡鐨勫藉害鍜岄珮搴︼細

InputStream is = new FileInputStream(filename);//閫氳繃鏂囦歡鍚嶇О璇誨彇鎴朓nputStream is =new ByteArrayInputStream(byte[] a);//閫氳繃鏂囦歡鐨勫瓧鑺傛暟緇勮誨彇銆

BufferedImage buff = ImageIO.read(is);
buff.getWidth();銆//寰楀埌鍥劇墖鐨勫藉害
buff.getHeight();�0�2 //寰楀埌鍥劇墖鐨勯珮搴
is.close(); //鍏抽棴Stream

Java鏄涓闂ㄩ潰鍚戝硅薄緙栫▼璇璦錛屼笉浠呭惛鏀朵簡C++璇璦鐨勫悇縐嶄紭鐐癸紝榪樻憭寮冧簡C++閲岄毦浠ョ悊瑙g殑澶氱戶鎵褲佹寚閽堢瓑姒傚康錛屽洜姝Java璇璦鍏鋒湁鍔熻兘寮哄ぇ鍜岀畝鍗曟槗鐢ㄤ袱涓鐗瑰緛銆

Java鍏鋒湁綆鍗曟с侀潰鍚戝硅薄銆佸垎甯冨紡銆佸仴澹鎬с佸畨鍏ㄦс佸鉤鍙扮嫭絝嬩笌鍙縐繪嶆с佸氱嚎紼嬨佸姩鎬佹х瓑鐗圭偣銆侸ava鍙浠ョ紪鍐欐岄潰搴旂敤紼嬪簭銆乄eb搴旂敤紼嬪簭銆佸垎甯冨紡緋葷粺鍜屽祵鍏ュ紡緋葷粺搴旂敤紼嬪簭絳夈

Java鐪嬭搗鏉ヨ捐″緱寰堝儚C++錛屼絾鏄涓轟簡浣胯璦灝忓拰瀹規槗鐔熸倝錛岃捐¤呬滑鎶奀++璇璦涓璁稿氬彲鐢ㄧ殑鐗瑰緛鍘繪帀浜嗭紝榪欎簺鐗瑰緛鏄涓鑸紼嬪簭鍛樺緢灝戜嬌鐢ㄧ殑銆備緥濡傦紝Java涓嶆敮鎸乬o to璇鍙ワ紝浠d箣浠ユ彁渚沚reak鍜宑ontinue璇鍙ヤ互鍙婂紓甯稿勭悊銆侸ava榪樺墧闄や簡C++鐨勬搷浣滅﹁繃杞斤紙overload錛夊拰澶氱戶鎵跨壒寰侊紝騫朵笖涓嶄嬌鐢ㄤ富鏂囦歡錛屽厤鍘諱簡棰勫勭悊紼嬪簭銆

㈤ 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,這么簡單的功能都不能實現,還是一門編程語言嗎? 一、部分截圖: ①打開 ②放大 ③翻轉 ④縮小 二、源程序: import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.File;
public class PhotoFrame extends JFrame implements ActionListener{ Canvas photo;
JPanel p;
JButton open,bigger,smaller,rotate,exit;
JScrollPane sp;
JFileChooser fc;
int w = 150;
int h = 150;
Image image;
int rate = 10;//圖片放縮率(單位:像素)

public PhotoFrame(){
init();
this.setTitle ("Java圖片查看器");
this.setSize (600,500);
this.setLocationRelativeTo (this);//窗口居中
this.setVisible (true);
this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

}
public void init(){
photo = new Photo();
sp = new JScrollPane(photo);
p = new JPanel();
open = new JButton("open");
bigger = new JButton(" + ");
smaller = new JButton(" - ");
rotate = new JButton(" の ");
exit = new JButton("exit");
//設置前景色
open.setForeground (Color.BLUE);
bigger.setForeground (Color.GREEN);
smaller.setForeground (Color.GREEN);
rotate.setForeground (Color.GREEN);
exit.setForeground (Color.RED);
//設置提示文本
open.setToolTipText ("打開文件");
bigger.setToolTipText ("放大");
smaller.setToolTipText ("縮小");
rotate.setToolTipText ("翻轉");
exit.setToolTipText ("退出程序");
//設置邊框
p.setBorder (BorderFactory.createEtchedBorder ());
p.add (open);
p.add (bigger);
p.add (smaller);
p.add (rotate);
p.add (exit);
add(sp,BorderLayout.CENTER);
add(p,BorderLayout.SOUTH);
open.addActionListener (this);
bigger.addActionListener (this);
smaller.addActionListener (this);
rotate.addActionListener (this);
exit.addActionListener (this);
}
public static void main(String[] args){
new PhotoFrame();
} public void actionPerformed (ActionEvent e){
if(e.getSource ()==open){//打開
fc = new JFileChooser();
int returnval = fc.showOpenDialog(this);
if(returnval == JFileChooser.APPROVE_OPTION){
File f = fc.getSelectedFile ();
String fileName = f.getName ();
String filePath=fc.getSelectedFile().getAbsolutePath();
System.out.println(filePath);
this.setTitle (fileName+"-Java圖片查看器");
//通過文件路徑獲得圖片
image = new ImageIcon(filePath).getImage ();
//獲取圖片的寬和高
w = image.getWidth (this);
h = image.getHeight (this);
}

}else if(e.getSource ()==bigger){//放大
if(w>0) w+= rate;
else w-= rate;
if(h>0)h+= rate;
else h-= rate;

}else if(e.getSource ()==smaller){//縮小
if(w>0) w-= rate;
else w+= rate;
if(h>0) h-= rate;
else h+= rate;

}else if(e.getSource ()==rotate){//翻轉
if(w>0&&h>0){
h*=-1;
}else if(w>0&&h<0){
w*=-1;
}else if(w<0&&h<0){
h*=-1;
}else if(w<0&&h>0){
w*=-1;
}
}else{//退出
System.exit(0);
}
photo.repaint ();//重新繪制
}

class Photo extends Canvas{

public void paint(Graphics g){

int width = this.getWidth();
int height = this.getHeight();
//設置圖片左上角坐標
int x = (width-w)/2;
int y = (height-h)/2;
//繪制圖片
g.drawImage(image, x, y, w, h,this);

}
}
}
三、補充:1、滾動面板功能沒有具體實現2、放大縮小率應該按照圖片寬高比來設置,最好用一個滾動條來放大縮小3、翻轉功能需要改進 樓主自己試著完善下...

㈦ 給定一幅圖像,用java讀取每個像素的RGB三個顏色值

int rgbR;
int rgbG;
int rgbB;
int minx = 0;
int miny = 0;
try {
File file = new File("E:\\dd.png");
BufferedImage image = ImageIO.read(file);
int width = image.getWidth();//圖片寬度
int height = image.getHeight();//圖片高度

for (int i = minx; i < width; i++) {
for (int j = miny; j < height; j++) {
int pixel = image.getRGB(i, j); // 下面三行代碼將一個數字轉換為RGB數字
rgbR = (pixel & 0xff0000) >> 16;
rgbG = (pixel & 0xff00) >> 8;
rgbB = (pixel & 0xff);
System.out.println("i=" + i + ",j=" + j + ":(" + rgbR + "," + rgbG + "," + rgbB + ")");
}
}

System.out.println("圖片寬度為:"+width+",高度為:"+height);

} catch (IOException e) {
System.out.println("讀取文件出錯");
e.printStackTrace();
}

閱讀全文

與java獲取圖片的寬高相關的資料

熱點內容
dji編程玩具 瀏覽:17
dcs伺服器異常現象是什麼 瀏覽:197
java中的布局 瀏覽:698
單片機作業三 瀏覽:156
古代分數運演算法則 瀏覽:149
電腦大文件夾查找方法 瀏覽:934
什麼app可以買國外衣服 瀏覽:381
媽媽吃了命令葯丸 瀏覽:712
男的進國企做程序員 瀏覽:992
程序員的數學線性代數 瀏覽:371
冰箱壓縮機啟動器盒怎麼拆 瀏覽:441
雪崩pdf 瀏覽:950
桂林銀行app如何查詢積分和等級 瀏覽:283
app第三方接入都有什麼 瀏覽:585
win7命令快捷鍵 瀏覽:541
安卓手機上的主鍵按不了了怎麼辦 瀏覽:938
前端小程序加密 瀏覽:889
python寫xls 瀏覽:310
壓縮干糧圖片 瀏覽:838
怎麼看網站被加密的視頻 瀏覽:850