【发布时间】:2020-07-11 08:48:52
【问题描述】:
我在透明度方面遇到了一些问题。
我正在使用https://stackoverflow.com/a/27453793 中提供的 sn-p,但是在 Windows 上它可以工作,但在 Mac 上却不行。
在进一步调查中,不同之处似乎是从 getPixel 返回的值。
以下面的例子为例,使用我创建的 1x1 像素透明图像。
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
public class ImageTest {
public static void main(final String[] args) throws MalformedURLException, IOException {
try (InputStream stream = new URL("https://i.imgur.com/BFlkniE.png").openStream()) {
final Path path = Files.createTempFile(null, ".png");
Files.copy(stream, path, StandardCopyOption.REPLACE_EXISTING);
final ImageDescriptor element = ImageDescriptor.createFromFile(null, path.toString());
final Image image = element.createImage();
final ImageData imageData = image.getImageData();
System.out.println(imageData.getPixel(0, 0));
}
}
}
在 Windows 上,输出为 0,在 Mac 上为 16711680。这是什么原因?
【问题讨论】:
标签: java eclipse swt eclipse-rcp