【问题标题】:Java Applet open, edit and save image fileJava Applet 打开、编辑和保存图像文件
【发布时间】:2023-03-28 20:32:01
【问题描述】:

想象一下我在服务器上运行 Apache 服务器的场景。来自 Internet 的用户来到服务器并受到 Java Applet 的欢迎,该 Applet 提示他们从计算机中选择图像文件。然后,它会在图像文件上加盖徽标并覆盖用户选择的原始图像。我把它写成一个桌面 GUI 应用程序。有没有办法直接使用我的基于摇摆的应用程序并在网站上运行它?

【问题讨论】:

    标签: java html swing deployment applet


    【解决方案1】:

    是否可以直接使用我的基于摇摆的应用程序并在网站上运行它?

    不是在网站上,而是从网站上。对应用程序 Jar 进行数字签名并使用 Java Web Start 从链接启动它。该应用程序。需要在启动文件中请求all-permissions

    除了签署代码和请求扩展权限之外,还可以转换 I/O 以使用等效的 JNLP API 服务。将在运行时提示用户是否允许该操作。请参阅沙盒 demo. of the JNLP API file services 了解其外观和感觉。

    【讨论】:

    • +1,对于答案:-),我认为有时主要问题出现在用户第一次签署 .jar 文件 :(,当我可以访问我的计算机时,我就在上面看看,如果我把这个方法保存到这个东西上。我会尝试提供同样的链接。
    • 签署小程序是不可能的。
    • 这是不正确的。要么那个,要么我已经做了很多次“不可能”的事情。
    • @MohammadAdib : 试试这个link,这就是我签署我的 JAR 文件一次来学习这个东西的方式,当时我做了这个small application
    【解决方案2】:
    Dear Friend here is an GUI that provides user interface to edit images...refer through it
    /* Arpana */
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.GridLayout;
    import java.awt.Image;
    import java.awt.MediaTracker;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.image.BufferedImage;
    import java.awt.image.ConvolveOp;
    import java.awt.image.Kernel;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.border.TitledBorder;
    
    public class ConvolveApp extends JFrame {
      CPanel displayPanel;
    
      JButton sharpenButton, blurringButton, edButton, resetButton;
    
      public ConvolveApp() {
        super();
        Container container = getContentPane();
    
        displayPanel = new CPanel();
        container.add(displayPanel);
    
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(2, 2));
        panel
            .setBorder(new TitledBorder(
                "Click a Button to Perform the Associated Operation and Reset..."));
    
        sharpenButton = new JButton("Sharpen");
        sharpenButton.addActionListener(new ButtonListener());
        blurringButton = new JButton("Blur");
        blurringButton.addActionListener(new ButtonListener());
        edButton = new JButton("Edge Detect");
        edButton.addActionListener(new ButtonListener());
        resetButton = new JButton("Reset");
        resetButton.addActionListener(new ButtonListener());
    
        panel.add(sharpenButton);
        panel.add(blurringButton);
        panel.add(edButton);
        panel.add(resetButton);
    
        container.add(BorderLayout.SOUTH, panel);
    
        addWindowListener(new WindowAdapter() {
          public void windowClosing(WindowEvent e) {
            System.exit(0);
          }
        });
         //setSize(100,100);
        setSize(displayPanel.getWidth()+50, displayPanel.getHeight() );
        setVisible(true); 
      }
      public static void main(String arg[]) {
        new ConvolveApp();
      }
    
      class ButtonListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
          JButton button = (JButton) e.getSource();
    
          if (button.equals(sharpenButton)) {
            displayPanel.sharpen();
            displayPanel.repaint();
          } else if (button.equals(blurringButton)) {
            displayPanel.blur();
            displayPanel.repaint();
          } else if (button.equals(edButton)) {
            displayPanel.edgeDetect();
            displayPanel.repaint();
          } else if (button.equals(resetButton)) {
            displayPanel.reset();
            displayPanel.repaint();
          }
        }
      }
    }
    
    class CPanel extends JLabel {
      Image displayImage;
    
      BufferedImage biSrc;
    
      BufferedImage biDest; // Destination image is mandetory.
    
      BufferedImage bi; // Only an additional reference.
    
      Graphics2D big;
    
      CPanel() {
        setBackground(Color.black);
        loadImage();
        setSize(displayImage.getWidth(this), displayImage.getWidth(this)); 
        createBufferedImages();
        bi = biSrc;
      }
    
      public void loadImage() {
        displayImage = Toolkit.getDefaultToolkit().getImage("Desert.jpg");
        MediaTracker mt = new MediaTracker(this);
        mt.addImage(displayImage, 1);
        try {
          mt.waitForAll();
        } catch (Exception e) {
          System.out.println("Exception while loading.");
        }
        if (displayImage.getWidth(this) == -1) {
          System.out.println("No jpg file");
          System.exit(0);
        }
      }
    
      public void createBufferedImages() {
        biSrc = new BufferedImage(displayImage.getWidth(this), displayImage
            .getHeight(this), BufferedImage.TYPE_INT_RGB);
    
        big = biSrc.createGraphics();
        big.drawImage(displayImage, 0, 0, this);
    
        biDest = new BufferedImage(displayImage.getWidth(this), displayImage
            .getHeight(this), BufferedImage.TYPE_INT_RGB);
      }
    
      public void sharpen() {
        float data[] = { -1.0f, -1.0f, -1.0f, -1.0f, 9.0f, -1.0f, -1.0f, -1.0f,
            -1.0f };
        Kernel kernel = new Kernel(3, 3, data);
        ConvolveOp convolve = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP,
            null);
        convolve.filter(biSrc, biDest);
        bi = biDest;
      }
    
      public void blur() {
        float data[] = { 0.0625f, 0.125f, 0.0625f, 0.125f, 0.25f, 0.125f,
            0.0625f, 0.125f, 0.0625f };
        Kernel kernel = new Kernel(3, 3, data);
        ConvolveOp convolve = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP,
            null);
        convolve.filter(biSrc, biDest);
        bi = biDest;
      }
    
        public void edgeDetect() {
        float data[] = { 1.0f, 0.0f, -1.0f, 1.0f, 0.0f, -1.0f, 1.0f, 0.0f,
            -1.0f };
    
        Kernel kernel = new Kernel(3, 3, data);
        ConvolveOp convolve = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP,
            null);
        convolve.filter(biSrc, biDest);
    
        bi = biDest;
      }
    
      public void reset() {
        big.setColor(Color.black);
        big.clearRect(0, 0, bi.getWidth(this), bi.getHeight(this));
        big.drawImage(displayImage, 0, 0, this);
        bi = biSrc;
      }
    
      public void update(Graphics g) {
        g.clearRect(0, 0, getWidth(), getHeight());
        paintComponent(g);
      }
    
      public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2D = (Graphics2D) g;
    
        g2D.drawImage(bi, 0, 0, this);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      相关资源
      最近更新 更多