當前位置:首頁 » 編程語言 » imageiojava

imageiojava

發布時間: 2022-12-11 21:32:17

java ImageIO是什麼功能,詳細說一下

它主要就是處理圖片信息的。
知道一個類後,多看寫他的API,會很有幫助的。
http://www.apihome.cn/api/java/ImageIO.html

⑵ Java的imageIO讀取圖片後,怎麼把他顯示在panel上呢

您好:讀取bmp文件到BufferedImage中

File file2 = new File("c:\\testimages\\tttt" + ".bmp");
// BufferedImage bi = backstore.getBufferedImage();
try {
output = ImageIO.read(file2);
} catch (IOException e) {
e.printStackTrace();
}

輸出bmp文件

File file2 = new File("c:\\testimages\\tttt" + ".bmp");
ImageIO.write(bi, "bmp", file2);

Byte[]輸出到文件

byte[] buf =UtilZip.zipObjectToByte(cache);
File file2 = new File("c:\\testimages\\cache.bin");
FileOutputStream fos =new FileOutputStream(file2);
fos.write(buf);
fos.flush();
fos.close();

讀文件到Byte[]中

File file2 = new File("c:\\testimages\\cache.bin");
FileInputStream fis = new FileInputStream(file2);
byte[] buf = new byte[(int) file2.length()];
fis.read(buf);
fis.close();

填充顏色到整個畫布

BufferedImage bi = backstore.getBufferedImage();
Graphics g2 = bi.getGraphics();
g2.setColor(Color.red);
g2.fillRect(0, 0, Common.width,
Common.height);

圖像變灰操作

public finalBufferedImage getGrayPicture(BufferedImage originalPic) {
int imageWidth = originalPic.getWidth();
int imageHeight = originalPic.getHeight();

BufferedImage newPic = new BufferedImage(imageWidth, imageHeight,
BufferedImage.TYPE_3BYTE_BGR);

ColorConvertOp cco = new ColorConvertOp(ColorSpace
.getInstance(ColorSpace.CS_GRAY), null);
cco.filter(originalPic, newPic);
return newPic;
}

ImageIO
javax.imageio.ImageIO lets you save and restore Images to disk in a platform independent format. It works using plug-in moles that handle various formats including "gif", "png" and "jpeg" (all lower case, or all upper case, but not mixed). "jpeg" or "jpg" is acceptable. Use ImageIO. getWriterFormatNames() to find out which types are supported on your platform:

import javax.imageio.ImageIO;

public class Jai
{

public static void main ( String[] args )
{
String[] names = ImageIO.getWriterFormatNames();
for ( String name: names )
{
System.out.println( name );
}
}
}

Loading an Image from raw bytes
Here raw bytes represent the image of a *.gif, *.png or

// raw bytes to BufferedImage
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import javax.imageio.ImageIO;
...
BufferedImage image = ImageIO.read ( new ByteArrayInputStream ( rawImageBytes ) );

Saving an Image to raw bytes
// BufferedImage to raw bytes
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
...

// O P E N
ByteArrayOutputStream baos = new ByteArrayOutputStream( 1000 );

// W R I T E
ImageIO.write( aBufferedImage, "jpeg" ,
baos );

// C L O S E
baos.flush();
byte[] resultImageAsRawBytes = baos.toByteArray();

baos.close();

Loading a BufferedImage from a file
// file to BufferedImage
import java.awt.image. BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
...
BufferedImage image = ImageIO.read( new File( "rabbit.jpg" ) );
Saving a BufferedImage to a file
// BufferedImage to File
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
...
ImageIO.write( aBufferedImage, "jpeg" ,
new File ( "snap.jpg" ) );

ImageWriteParam is a way of controlling exactly how the image in encoded. There is currently no PNG support for it. This is not for injecting meta info.
Loading a BufferedImage from an URL
// url to BufferedImage
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
...
BufferedImage image = null;
try
{
image = ImageIO.read( url );
}
catch ( IOException e )
{
System.out.println( "image missing" );
}

Converting Image to BufferedImage
// Image to BufferedImage
import java.awt.image.BufferedImage;
import java.awt.Image;
...
BufferedImage bufferedImage = new BufferedImage ( imageWidth,
imageHeight,
BufferedImage.TYPE_INT_BGR );
bufferedImage.createGraphics().drawImage( image, 0, 0, this );

⑶ imageio java最大能讀取多大尺寸的圖片

BufferedImage image = javax.imageio.ImageIO.read(file);報錯:java.lang.OutOfMemoryError
: Java heap space
圖片大小是3425px*4843px,我本機內存1g。
------解決方案--------------------------------------------------------
Xms Xmx 把jvm的heap 調大點 試試~~~
------解決方案--------------------------------------------------------
設置一下stack size的大小 java 後跟參數即可設置,具體參數如下:
-Xms size set initial Java heap size
-Xmx size set maximum Java heap size
-Xss size set java thread stack size
------解決方案--------------------------------------------------------
用java.exe -Xmx1024m -Xms256m .來運行的程序,你機器是1G但是又沒分配給jvm
------解決方案--------------------------------------------------------
ImageIO.read(File file)使用來自boolean getUseCache() 和 File getCacheDirectory()的當前緩存設置控制所創建的 ImageInputStream 中的緩存。其中getUseCache()默認設定是true,getCacheDirectory()返回的是setCacheDirectory(File cacheDirectory)所設定的目標,如果用戶沒有明顯設定,那麼getCacheDirectory()返回的將是null。

⑷ Java/J2SE中的ImageIO影響了繪制速度,怎麼解決

使用
ImageIcon img=new ImageIcon("圖片地址");
Image m=img.getImage();
速度會快一些。
另外使用媒體載入器MediaTracker類,將需要的圖片對象全部載入進來再操作,會提高速度。原理是把所有圖像載入到內存中再讀取,而不是從外存磁碟載入,讀取。

⑸ java imageio寫入數據後生成的文件為什麼會比實際寫入的大

你把攝像機拍攝的圖片的一部分數據(二進制數據)用兩種方式存到硬碟的文件上.

方式一,把這些二進制數據編碼成jpg圖片,並保存,這里會加入一些"元數據",所以會比你想像中的大.
方式二,直接把二進制數據流寫到硬碟上文件中,沒有加入"元數據"所以數據大小沒發生變化.
你可以想像一下方式一類似在MS Word文檔中只存一個字母a,方式二類似在記事本中只存一個字母a,然後你比較這兩個文件的大小.

⑹ java:image.ImageIO類的getRGB()方法,返回的是什麼

java:image.ImageIO類的getRGB()方法返回的是一個整型數據。
這個方法可以從圖片的指定區域讀取ARGB像素值,並存儲到rgbData數組中,rgbData中的數據是以0xAARRGGBB格式存儲的,代表每個像素的顏色屬性和透明屬性。返回值就是RGB色彩。
RGB色彩模式是工業界的一種顏色標准,是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道的顏色,這個標准幾乎包括了人類視力所能感知的所有顏色,是目前運用最廣的顏色系統之一。

⑺ java imageIO 讀取圖片問題

試了一下,這張jpg圖片中含有大量的元數據(註解數據),結構復雜,導致java讀取錯誤。
可用畫圖等圖片編輯軟體「另存為」或者「導出」一下,同時去掉元數據。
就可以被ImageIO讀取

熱點內容
可編程脈沖電源 發布:2025-01-22 12:49:22 瀏覽:829
歐規墨規美規中東哪個配置高 發布:2025-01-22 12:48:00 瀏覽:777
安卓機怎麼用不了多久 發布:2025-01-22 12:47:44 瀏覽:761
安卓怎麼錄屏別人直播 發布:2025-01-22 12:35:20 瀏覽:385
1030怎麼配置電腦 發布:2025-01-22 12:35:19 瀏覽:89
sql資料庫的埠 發布:2025-01-22 12:20:02 瀏覽:362
安卓最終幻想8怎麼設置中文 發布:2025-01-22 12:19:23 瀏覽:651
怎麼查電腦配置和網路 發布:2025-01-22 12:19:16 瀏覽:586
linuxsnmp查看 發布:2025-01-22 12:17:49 瀏覽:37
安卓數據線怎麼接藍牙 發布:2025-01-22 12:07:29 瀏覽:229