在Java中是否有一种快速的方法来替换某些颜色的位图中的所有实例与其他颜色?
我正在使用的图像是一个非常大的5616 x 2160 24位非透明无索引位图,尽管此位图的像素值会有所不同.
这是我目前正在使用的代码,但它太慢了:http: //pastebin.com/UjgwgB0V
public class DisplayImage extends JFrame {
public DisplayImage(boolean resize, boolean mapCountries) throws IOException {
super("Province Map");
File mapProvinceFile = new File("map\\provinces.bmp");
BufferedImage mapProvinceImage = ImageIO.read(mapProvinceFile);
byte[] pixels = (byte[])mapProvinceImage.getRaster().getDataElements(0, 0, mapProvinceImage.getWidth(), mapProvinceImage.getHeight(), null);
if (mapCountries) {
for (int i = 0; i < Victoria2Stats.provinceDefinitionArray.size(); i++) {
for (int p = 0; p < pixels.length-3; p = p + 3) {
if ((byte)Victoria2Stats.provinceDefinitionArray.get(i).rgb[0] == pixels[p]) {
if ((byte)Victoria2Stats.provinceDefinitionArray.get(i).rgb[1] == pixels[p+1]) {
if …Run Code Online (Sandbox Code Playgroud) 我正在写一个测试应用程序.要为图像设置Alpha,我使用paintComponent方法.观看下一个片段......
public class TestImage extends JLabel{
public void paintComponent( Graphics g ) {
super.paintComponent( g );
Graphics2D g2d=(Graphics2D)g;
g2d.drawImage(this.bImage, rop, 0, 0);
}
public void setRescaleOp(RescaleOp rop){this.rop=rop;}
}
Run Code Online (Sandbox Code Playgroud)
如你看到的,
g2d.drawImage(this.bImage,rop,0,0);
不允许设置宽度和高度,就像我使用g.drawImage(bImage,0,0,width,height,null);
所以问题是......在这种情况下如何设置bImage的宽度和高度?
任何有用的评论表示赞赏
安德鲁