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

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

高級圖像處理圖像I/OAPIRC1.0

2019-11-18 11:13:22
字體:
來源:轉載
供稿:網友

  假如你對圖像處理感愛好,而且需要使用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
亚洲在线免费视频| 久久久极品av| 欧美一级淫片videoshd| 成人激情春色网| 亚洲三级黄色在线观看| 九九热视频这里只有精品| 精品网站999www| 国产精品久久婷婷六月丁香| xxx成人少妇69| 在线观看视频亚洲| 日韩国产在线看| 成人国产在线激情| 亚洲欧洲在线视频| 久久久久这里只有精品| 欧美孕妇孕交黑巨大网站| 精品福利免费观看| 日本一欧美一欧美一亚洲视频| 欧美激情免费在线| 欧美成人精品h版在线观看| 91精品久久久久久久久不口人| 97**国产露脸精品国产| 久久久久久久成人| 国产精品啪视频| 日韩电影中文 亚洲精品乱码| 亚洲国产日韩欧美综合久久| 亚洲va欧美va在线观看| 91精品国产91久久久久久不卡| 亚洲新声在线观看| 日韩视频免费在线| 精品日本美女福利在线观看| 欧美性极品xxxx做受| 国产精品视频资源| 亚洲毛片在线观看| 亚洲国产成人爱av在线播放| 亚洲男人第一av网站| 国产69久久精品成人| 国产精品情侣自拍| 久久久精品国产一区二区| 最新国产精品拍自在线播放| 激情亚洲一区二区三区四区| 国产午夜精品免费一区二区三区| 国产精品久久网| 亚洲欧美日韩精品| 国产91成人video| 午夜精品理论片| 欧美高清理论片| 久久精品夜夜夜夜夜久久| 欧美日韩久久久久| 日韩av一区二区在线| 国产精品露脸自拍| 最近2019中文字幕在线高清| 精品中文字幕在线2019| 97超碰蝌蚪网人人做人人爽| 九九热最新视频//这里只有精品| 日本精品久久久久久久| 91在线视频免费| 不卡在线观看电视剧完整版| 国产日韩精品一区二区| 538国产精品一区二区在线| 久久久免费观看| 一区二区欧美亚洲| 日韩免费观看av| 日韩在线免费av| 亚洲毛片在线免费观看| 91精品啪aⅴ在线观看国产| 日韩av不卡在线| 久久久久久久久久久成人| 久青草国产97香蕉在线视频| 久久久久久国产| 91国偷自产一区二区三区的观看方式| 狠狠做深爱婷婷久久综合一区| 海角国产乱辈乱精品视频| 在线视频欧美日韩| 亚洲成年网站在线观看| 97精品视频在线播放| 亚洲综合色av| 色偷偷91综合久久噜噜| 欧美国产精品人人做人人爱| 欧美一级淫片videoshd| 久久久久久这里只有精品| 91亚洲精品在线| 欧美一区二区三区免费观看| 久久久国产精品免费| 亚洲乱码国产乱码精品精| 国产精品免费一区豆花| 欧美日韩国产中文字幕| 91国产精品视频在线| 精品福利在线观看| 国产ts一区二区| 免费91在线视频| 欧美另类极品videosbestfree| 欧美极品少妇xxxxⅹ裸体艺术| 成人精品久久久| 97在线视频免费播放| 欧美一级成年大片在线观看| 日韩高清中文字幕| 91久久久久久国产精品| 欧美黑人视频一区| 国产免费成人av| 国产精品久久久久久av福利软件| 欧美视频在线看| 欧美激情18p| 精品在线欧美视频| 热门国产精品亚洲第一区在线| 日本久久久久久久| 91久久国产精品91久久性色| 欧美激情影音先锋| 亚洲日韩欧美视频一区| 色av中文字幕一区| 欧美电影免费观看网站| 欧美性视频在线| 中文字幕精品久久久久| 国产欧美一区二区三区视频| 国产精品视频26uuu| 亚洲视频一区二区| 国产精品r级在线| 欧美在线视频一区二区| 8x海外华人永久免费日韩内陆视频| 亚洲第一区中文字幕| 黄色一区二区三区| 国产福利成人在线| 91天堂在线视频| 久久久www成人免费精品| 日韩电影在线观看永久视频免费网站| 欧美色视频日本高清在线观看| 久久久在线免费观看| 久久久久久国产精品| 欧美精品在线免费| 国产视频亚洲精品| 97国产真实伦对白精彩视频8| 精品久久久久久久久久久久| 亚洲欧美日韩网| 国产精品成熟老女人| 欧美日本中文字幕| 最新91在线视频| 福利视频第一区| 一区二区在线免费视频| 中日韩美女免费视频网站在线观看| 国产日本欧美一区二区三区在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩av在线免费观看| 亚洲аv电影天堂网| 精品夜色国产国偷在线| 8x拔播拔播x8国产精品| 91精品国产91久久久久久久久| 国产成人综合久久| 欧美—级高清免费播放| 国产精品一二区| 亚洲国产精品系列| 爱福利视频一区| 日韩在线免费观看视频| 国产精品一区二区久久| 亚洲免费视频在线观看| 海角国产乱辈乱精品视频| 亚洲系列中文字幕| 97香蕉超级碰碰久久免费的优势| 亚洲mm色国产网站| 91视频九色网站| 国产精品永久免费视频| 亚洲深夜福利在线| 欧美国产日韩中文字幕在线| 性夜试看影院91社区| 欧洲中文字幕国产精品| 国产精品久久精品|