将按钮中的图像图标上传到服务器

时间:2018-04-23 12:01:50

标签: codenameone

我有一个按钮,其中包含图库中的图像。图像缩放到显示宽度,其高度设置为显示宽度的一半。现在,当我将此图像上传到服务器时,我发送了imagePath,导致发送图库的原始图像。如何上传按钮的图标? (即宽度=显示宽度和高度=显示宽度的一半)

getImageButton.addActionListener(f -> {
    Display.getInstance().openGallery(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            try {
                if (evt == null) {
                    return;
                }
                imagePath = (String) evt.getSource();

                Image i = Image.createImage(imagePath);
                Image profileImgg = i.scaledWidth(Display.getInstance().getDisplayWidth());

                getImageButton.setIcon(profileImgg);
                getImageButton.setPreferredH((Display.getInstance().getDisplayWidth()/2)-50);

                getImageButton.getParent().revalidate();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }, Display.GALLERY_IMAGE);
});

PS。我想上传按钮的图标,而不是图库中的图像。

1 个答案:

答案 0 :(得分:1)

缩放方法生成一个新的图像实例,它不会影响您加载的文件。此缩放方法也会使图像宽高比失真。我建议采用更明智的扩展策略,例如fill()

您有两种选择:

  • 将加载的图像转换为文件对象。简单的方法是:

    EncodedImage e = EncodedImage.createFromImage(img, true);
    byte[] theDataOfTheImageFile = e.getImageData();
    
  • 使用ImageIO API

  • 直接转换文件