<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 用 Java 讀寫 ICO 圖像 原文:http://zetcode.com/articles/javaico/ 在本文中,我們展示了如何在 Java 中讀取和寫入 ICO 圖像。 ICO 是在 Microsoft Windows 上的圖標中使用的圖像文件格式。 ICO 文件包含一個或多個具有多種大小和顏色深度的小圖像,因此可以適當縮放它們。 ICO 文件也經常用于網絡上的收藏夾圖標。 要使用 Java 讀寫 ICO 文件,我們使用 image4j 圖片庫。 可以從 [image4j.sourceforge.net](http://image4j.sourceforge.net) 下載用于 image4j 的 JAR。 ## 將 PNG 轉換為 ICO 在以下示例中,我們將 PNG 圖像轉換為 ICO 圖像。 `ConvertToIcoEx.java` ```java package com.zetcode; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import net.sf.image4j.codec.ico.ICOEncoder; public class ConvertToIcoEx { public static void main(String[] args) throws IOException { BufferedImage bi = ImageIO.read(new File("laptop.png")); ICOEncoder.write(bi, new File("laptop.ico")); } } ``` 我們使用`ImageIO.read()`方法將 PNG 文件讀入`BufferedImage`。 `BufferedImage`是存儲在內存中的像素矩形。 它是 Swing 中最重要的圖像類型之一。 ```java ICOEncoder.write(bi, new File("laptop.ico")); ``` `ICOEncoder.write()`將 PNG 轉換為 ICO 文件。 ## 將 ICO 轉換為 PNG 在第二個示例中,我們將 ICO 圖像轉換為 PNG 圖像。 `ConvertIcoToPngEx.java` ```java package com.zetcode; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.List; import javax.imageio.ImageIO; import net.sf.image4j.codec.ico.ICODecoder; public class ConvertIcoToPngEx { public static void main(String[] args) throws IOException { List<BufferedImage> images = ICODecoder.read(new File("favicon.ico")); ImageIO.write(images.get(0), "png", new File("favicon.png")); } } ``` 我們使用`ICODecoder.read()`方法將 ICO 文件讀入`BufferedImage`。 通過`ImageIO.write()`方法將`BufferedImage`寫入 PNG 文件。 ## 下載 ICO 文件 在下一個示例中,我們從網站下載 ICO 文件,將其轉換為`ImageIcon`,并在`JLabel`組件中顯示。 `DownloadIcoEx.java` ```java package com.zetcode; import java.awt.Container; import java.awt.EventQueue; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.GroupLayout; import javax.swing.ImageIcon; import javax.swing.JComponent; import javax.swing.JFrame; import static javax.swing.JFrame.EXIT_ON_CLOSE; import javax.swing.JLabel; import net.sf.image4j.codec.ico.ICODecoder; /** * The example downloads a favicon and displays it in a JLabel. * * @author Jan Bodnar * @website zetcode.com */ public class DownloadIcoEx extends JFrame { public DownloadIcoEx() { initUI(); } private void initUI() { List<BufferedImage> images = readImage(); ImageIcon icon = new ImageIcon(images.get(0)); JLabel lbl = new JLabel(icon); createLayout(lbl); setTitle("Ico image"); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); } private List<BufferedImage> readImage() { List<BufferedImage> images = null; try { String path = "http://stackoverflow.com/favicon.ico"; InputStream istr = new URL(path).openStream(); images = ICODecoder.read(istr); } catch (MalformedURLException ex) { Logger.getLogger(DownloadIcoEx.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(DownloadIcoEx.class.getName()).log(Level.SEVERE, null, ex); } return images; } private void createLayout(JComponent... arg) { Container pane = getContentPane(); GroupLayout gl = new GroupLayout(pane); pane.setLayout(gl); gl.setAutoCreateContainerGaps(true); gl.setHorizontalGroup(gl.createSequentialGroup() .addComponent(arg[0]) .addGap(150) ); gl.setVerticalGroup(gl.createParallelGroup() .addComponent(arg[0]) .addGap(100) ); pack(); } public static void main(String[] args) { EventQueue.invokeLater(() -> { DownloadIcoEx ex = new DownloadIcoEx(); ex.setVisible(true); }); } } ``` 該示例從 StackOverflow 網站下載了一個圖標。 ```java String path = "http://stackoverflow.com/favicon.ico"; InputStream istr = new URL(path).openStream(); ``` 我們從 URL 創建一個`InputStream`。 ```java images = ICODecoder.read(istr); ``` `ICODecoder.read()`從`InputStream`讀取到`BufferedImage` ```java ImageIcon icon = new ImageIcon(images.get(0)); ``` 從`BufferedImage`創建一個`ImageIcon`。 ```java JLabel lbl = new JLabel(icon); ``` 將`ImageIcon`放入`JLabel`。 ![Favicon](https://img.kancloud.cn/1b/b6/1bb6f7db77bc249c8a78b3aac613b297_180x138.jpg) 圖:Favicon 在本文中,我們已使用 image4j 庫讀取和寫入 ICO 圖像。 您可能也對以下相關教程感興趣: [Java 教程](/lang/java/), [Java Swing 教程](/tutorials/javaswingtutorial/)或 [Android 教程](/mob/android/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看