我有一个按钮,其中包含图库中的图像。图像缩放到显示宽度,其高度设置为显示宽度的一半。现在,当我将此图像上传到服务器时,我发送了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。我想上传按钮的图标,而不是图库中的图像。
答案 0 :(得分:1)
缩放方法生成一个新的图像实例,它不会影响您加载的文件。此缩放方法也会使图像宽高比失真。我建议采用更明智的扩展策略,例如fill()
。
您有两种选择:
将加载的图像转换为文件对象。简单的方法是:
EncodedImage e = EncodedImage.createFromImage(img, true);
byte[] theDataOfTheImageFile = e.getImageData();
使用ImageIO
API