亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

高級圖像處理圖像I/O API RC 1.0

2019-11-18 12:03:51
字體:
來源:轉載
供稿:網友

  假如你對圖像處理感愛好,而且需要使用GIF、JPEG和PNG以外的其它圖像格式,或者希望改善JPEG圖像處理的性能但不知道到哪里尋找適當的方法,或者需要通過幾何運算(包括非線性變換)來處理圖像,不必再為此苦惱了,答案就在這里——來自Sun公司的java高級圖像處理API和JAI圖像I/O API 1.0 RC。
  
  JAI API是Java Media API的一部分,與之相伴的還包括Java 2D API、Java 3D API、Java Speech API和其他一些API。Java高級圖像處理API是作為Java規范請求(jsp)34的一部分而開發的,是對J2SE version 1.3+版的擴展,主要用于處理圖像。最初發布的版本是1.0,JDC(Java Developer Connection)提供了一個預覽版1.1.2 beta。(最新進展情況請查閱README.Html文件。)與AWT和Java 2D相比,JAI API提供了更豐富的圖像處理,包括對許多通用圖像操作的內在支持。
  
  不過本文的目的不是討論JAI API,而是伴隨這些API但分離到它自己的可安裝庫中的一組圖像讀寫器(codec)類,即Java高級圖像處理圖像I/O工具1.0 RC。該RC提供了可以插接到J2SE 1.4的圖像I/O框架上的一些功能。作為JSR-15一部分而開發的圖像I/O API提供了一個支持不同圖像格式的可插拔框架。標準J2SE 1.4版本身支持GIF、JPEG和PNG圖像格式,而JAI圖像I/O RC則提供了更多主流圖像格式的編碼解碼器。只要加上針對操作平臺的適當版本,以前開發的應用程序就可以處理這些新的圖像格式。
  
  要理解JAI圖像I/O工具的使用,需要首先了解圖像I/O庫。在安裝和介紹圖像I/O工具包之前,我們先看一看圖像I/O庫。
  
  圖像I/O庫
  圖像I/O庫是J2SE 1.4的標準API,放在javax.imageio包內。雖然這個包提供了兩個接口和9個類,整個API實際上就是ImageIO類。通過這個類可以弄清讀寫所支持的圖像格式并對這些圖像進行讀寫,實際上這也就是整個API的全部內容。
  
  由于圖像I/O庫是一個可插拔的框架,所支持的圖像格式集不是固定不變的。盡管隨J2SE 1.4發布了一些標準格式,但任何人都可以增加新的支持格式。要查看有哪些格式可用,可以使用下面的代碼:
  
  import javax.imageio.*;import java.util.Arrays;
  public class GetFormats {  public static void main(String args[]) {    String readFormats[] = ImageIO.getReaderMIMETypes();    String writeFormats[] = ImageIO.getWriterMIMETypes();    System.out.  運行該程序,你會發現這個庫支持讀取GIF、JPEG和PNG圖像,也支持寫JPEG和PNG圖像,但是不支持寫GIF文件。
  
  除了與像image/jpeg這樣的MIME類型協同工作外,ImageIO類還答應通過getReaderFormatNames和getWriterFormatNames方法使用JPEG這樣的非正式名稱。此外,通過getImageReadersBySuffix和getImageWritersBySuffix還可以了解是否存在針對特定文件擴展名的reader/writer存在。
  
  利用ImageIO類,你所要做的事情不過是讀javax.imageio.stream.ImageInputStream、java.io.InputStream、java.io.File或者java.net.URL,結果會得到一個java.awt.image.BufferedImage。一旦擁有了BufferedImage,你就可以指定需要的格式名把圖像寫回去。(不僅僅是BufferImage,任何實現RenderedImage接口的類都可以寫。)新的格式既可以與讀取的格式相同,也可以是不同的格式以便進行格式轉換。假如指定的格式沒有可用的writer,那么write方法就返回false,否則假如找到了相應的writer就返回true。
  
  String inputFilename = ...;BufferedImage image = ImageIO.read(inputFilename);...String formatName = "jpg"; // desired formatString outputFilename = ...;File outputFile = new File(outputFilename);boolean writerExists = ImageIO.write(image,formatName, outputFile);
  為了說明圖像I/O庫的用法,下面的例子使用JFileChooser提示輸入圖像文件名。選中文件后再選擇目標輸出格式,然后按下“Save(保存)”按鈕。保存完成后,將重新讀取圖像并在一個新窗口內顯示。
  
  import java.awt.*;
  import java.awt.event.*;
  import java.awt.image.*;
  import javax.swing.*;
  import java.io.*;
  import java.net.*;
  import javax.imageio.*;
  
  public class Converting extends JFrame {  JLabel promptLabel;  JTextField prompt;  JButton promptButton;  JFileChooser fileChooser;  JComboBox comboBox;?  JButton saveButton;?  public Converting() {    super("Image Conversion");    setDefaultClo
SEOperation(EXIT_ON_CLOSE);    Container contentPane = getContentPane();    JPanel inputPanel = new JPanel();    promptLabel = new JLabel("Filename:");    inputPanel.add(promptLabel);    prompt = new JTextField(20);    inputPanel.add(prompt);    promptButton = new JButton("Browse");    inputPanel.add(promptButton);    contentPane.add(inputPanel, BorderLayout.NORTH);
      fileChooser = new JFileChooser();    promptButton.addActionListener(      new ActionListener() {        public void actionPerformed(ActionEvent e) {          int returnValue =              fileChooser.showOpenDialog(null);          if (returnValue ==             JFileChooser.APPROVE_OPTION) {           File selectedFile =               fileChooser.getSelectedFile();            if (selectedFile != null) {             prompt.setText(selectedFile.getAbsolutePath());            }          }        }      }    );
      JPanel outputPanel = new JPanel();    String writerFormats[] =         ImageIO.getWriterFormatNames();    ComboBoxModel comboBoxModel = new         DefaultComboBoxModel(writerFormats);    comboBox = new JComboBox(comboBoxModel);    outputPanel.add(comboBox);    saveButton = new JButton("Save");    outputPanel.add(saveButton);    saveButton.addActionListener(      new ActionListener() {        public void actionPerformed(ActionEvent e) {          try {          String name = prompt.getText();          File file = new File(name);          if (file.exists()) {            BufferedImage image =                 ImageIO.read(file.toURL());          if (image == null) {            System.err.println("Invalid input                 file format");          } else {            String selection =               (String)comboBox.getSelectedItem();            String outputFilename = name +                "." + selection;            File outputFile = new File(outputFilename);            boolean found = ImageIO.write(image,                 selection, outputFile);            if (found) {             JDialog window = new JDialog();             Container windowContent =                  window.getContentPane();             BufferedImage newImage =                  ImageIO.read(outputFile);             JLabel label = new JLabel(new                  ImageIcon(newImage));             JScrollPane pane = new                  JScrollPane(label);            windowContent.add(pane,                 BorderLayout.CENTER);            window.setSize(300, 300);            window.show();          } else {           System.err.println("Error saving");          }         }       } else {         System.err.println("Bad filename");       }      } catch (MalformedURLException mur) {       System.err.println("Bad filename");     } catch (IOException ioe) {       System.err.println("Error reading file");     }   }  } );
   contentPane.add(outputPanel, BorderLayout.SOUTH);
   } public static void main(String args[]) {   JFrame frame = new Converting();   frame.pack();   frame.show(); }}
  注重,該程序沒有硬編碼任何文件類型,而是詢問圖像I/O框架支持哪些文件類型。安裝Java高級圖像處理圖像I/O工具RC后,還可以重新運行該程序,你將會看到更多的存儲格式。讀取其它格式的圖像基本上無需改變代碼也能工作,用戶只要選擇不同的文件類型就可以了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品亚洲aⅴ在线观看| 国产黑人绿帽在线第一区| 色综合久综合久久综合久鬼88| 久久九九热免费视频| 亚洲色图综合网| www.亚洲一区| 日韩成人av一区| 久久视频免费在线播放| 国产精品视频26uuu| 色av吧综合网| 精品自在线视频| 最近2019年手机中文字幕| 最近2019年日本中文免费字幕| 久久久成人的性感天堂| 日本成人在线视频网址| 欧美在线一级va免费观看| 欧美在线xxx| 欧美自拍视频在线观看| 国产日韩综合一区二区性色av| 亚洲自拍小视频| 精品久久久久久久大神国产| 国产精品国产三级国产aⅴ9色| 69**夜色精品国产69乱| 中文字幕亚洲综合久久筱田步美| 欧美日韩激情视频8区| 国产一区二区视频在线观看| 国产欧美日韩精品在线观看| 欧美亚洲成人精品| 欧美在线视频导航| 97在线看福利| 国产91在线高潮白浆在线观看| 成人444kkkk在线观看| 亚洲高清不卡av| 91av在线免费观看| 欧美一区二区三区免费视| 91免费视频国产| 91在线视频免费| 精品国产乱码久久久久酒店| 亚洲精品一区中文字幕乱码| 2019av中文字幕| 北条麻妃一区二区在线观看| 亚洲最大成人在线| 日韩在线视频线视频免费网站| 亚洲国产91精品在线观看| 日韩高清中文字幕| 国产精品99久久久久久久久| 久热爱精品视频线路一| 一区二区日韩精品| 欧美激情videoshd| 久久久久久久久久国产精品| 91日本视频在线| 国产欧美一区二区三区在线看| 欧美在线视频观看| 欧美俄罗斯性视频| 久久国内精品一国内精品| 国产精品美女视频网站| 国模精品视频一区二区三区| 国产精品第3页| 国产精品吹潮在线观看| 青青在线视频一区二区三区| 一本色道久久综合亚洲精品小说| 伊人久久大香线蕉av一区二区| 国产精品午夜国产小视频| 亚洲女人天堂成人av在线| 色婷婷综合成人| 国产z一区二区三区| 亚洲精品永久免费精品| 韩国欧美亚洲国产| 热久久99这里有精品| 欧美性视频精品| 亚洲最大激情中文字幕| 精品高清一区二区三区| 欧美成人午夜激情| 超薄丝袜一区二区| 国产精品丝袜久久久久久不卡| 欧美伊久线香蕉线新在线| 尤物99国产成人精品视频| 亚洲视频在线观看免费| 成人免费视频a| 51ⅴ精品国产91久久久久久| 亚洲国产精品热久久| 欧美性感美女h网站在线观看免费| 国产亚洲欧美视频| 成人精品久久久| 亚洲天堂av高清| 日韩精品福利网站| 综合网日日天干夜夜久久| 日产精品久久久一区二区福利| …久久精品99久久香蕉国产| 成人在线一区二区| 中文在线不卡视频| 久久久久久久影院| 国产精品久久久久久亚洲调教| 97久久伊人激情网| 欧美三级欧美成人高清www| 久久精品中文字幕| 欧美专区在线视频| 日本精品久久久久久久| 青青草原一区二区| 欧美大人香蕉在线| 成人久久久久爱| 国产精品美女www爽爽爽视频| 青青青国产精品一区二区| 日韩国产激情在线| 日本a级片电影一区二区| 亚洲第一视频网站| 91精品国产综合久久香蕉的用户体验| 亚洲欧美日韩中文在线制服| 亚洲伊人久久综合| 两个人的视频www国产精品| 亚洲国产天堂久久国产91| 羞羞色国产精品| 久久伊人精品一区二区三区| 久久国产精品久久久久久| 国产丝袜视频一区| 热久久视久久精品18亚洲精品| 亚洲四色影视在线观看| 日韩欧美在线一区| 久久久国产91| 日韩中文理论片| 国产91精品视频在线观看| 91精品久久久久久久久不口人| 黄网站色欧美视频| 色偷偷偷综合中文字幕;dd| 欧美日韩黄色大片| 日本精品久久中文字幕佐佐木| 欧美超级乱淫片喷水| 久久精视频免费在线久久完整在线看| 国产一区二区av| www国产精品视频| 午夜精品视频在线| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲国内高清视频| 亚洲电影免费观看高清完整版在线| 中文字幕日韩欧美在线| 国产精品美女网站| 欧美一区二区三区精品电影| 日韩免费中文字幕| 精品亚洲一区二区三区在线播放| 91wwwcom在线观看| 亚洲黄页网在线观看| 亚洲免费电影在线观看| 成人激情视频免费在线| 亚洲欧美精品一区二区| 国产精品影院在线观看| 日韩精品一区二区视频| 精品欧美激情精品一区| 最近2019中文字幕mv免费看| 69av在线播放| 国产精品欧美风情| 欧美成年人视频| 成人国产亚洲精品a区天堂华泰| 欧美日韩中文字幕综合视频| 欧美精品久久久久久久| 成人日韩在线电影| 欧美大片大片在线播放| 久久这里有精品视频| 亚洲一区二区三区四区在线播放| 亚洲天天在线日亚洲洲精| 海角国产乱辈乱精品视频| 在线成人激情黄色| 欧美国产日韩一区二区在线观看| 欧美孕妇性xx| 97超视频免费观看|