Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaFXAPI中哪里可以找到getArgb函数声明?_Java_Api_Javafx - Fatal编程技术网

在JavaFXAPI中哪里可以找到getArgb函数声明?

在JavaFXAPI中哪里可以找到getArgb函数声明?,java,api,javafx,Java,Api,Javafx,在javafxapi中哪里可以找到getArgb函数定义?(package com.sun.javafx.tk(PlatformImage))如果您正在寻找接口com.sun.javafx.tk.PlatformImage,它是用于存储javafx.image.image对象的所有工具箱特定对象的通用接口,您可以在OpenJFX上找到它 在那里可以看到getArgb()函数声明: /** * @param x X coordinate of pixel * @param y Y coordi

在javafxapi中哪里可以找到getArgb函数定义?(package com.sun.javafx.tk(PlatformImage))

如果您正在寻找接口
com.sun.javafx.tk.PlatformImage
,它是用于存储
javafx.image.image
对象的所有工具箱特定对象的通用接口,您可以在OpenJFX上找到它

在那里可以看到
getArgb()
函数声明:

/**
 * @param x X coordinate of pixel
 * @param y Y coordinate of pixel
 * @return the non-premultiplied pixel in integer ARGB component ordering.
 */
public int getArgb(int x, int y);
公共API
javafx.scene.image.image
实现了一个
javafx.scene.image.PixelReader
,该接口定义了从图像检索像素数据的方法,提供了该接口中的所有方法:

new PixelReader() {
    @Override
    public int getArgb(int x, int y) {
        PlatformImage pimg = platformImage.get();
        return pimg.getArgb(x, y);
    }
}
图像对象具有基础平台表示形式:

private ObjectPropertyImpl<PlatformImage> platformImage;
这将导致
com.sum.prism.Image.getArgb()

和内部类
BaseAccesor

@Override
public int getArgb(int x, int y) {
    return getGetter().getArgb(getBuffer(), getIndex(x, y));
}
这最终导致
com.sun.javafx.image.impl.ByteBgraPre

@Override
public int getArgb(ByteBuffer buffer, int offset) {
    return PixelUtils.PretoNonPre(getArgbPre(buffer, offset));
}
在哪里


我指的是函数定义,它是一个接口。它将在实现或使用
PlatformImage
的任何类中实现。。。例如,它在这个
com.sun.javafx.tk.ImageLoader
接口和
com.sun.javafx.tk.Toolkit
抽象类中使用。看看函数getArgb。看看函数返回:pimg.getArgb(x,y)。我在哪里可以找到这个getArgb定义?谢谢,我在Intellij调试器中使用了“强制单步执行”而不是“单步执行”。
@Override
public int getArgb(int x, int y) {
    return getGetter().getArgb(getBuffer(), getIndex(x, y));
}
@Override
public int getArgb(ByteBuffer buffer, int offset) {
    return PixelUtils.PretoNonPre(getArgbPre(buffer, offset));
}
    @Override
    public int getArgbPre(ByteBuffer buffer, int offset) {
        return (((buffer.get(offset    ) & 0xff)      ) |
                ((buffer.get(offset + 1) & 0xff) <<  8) |
                ((buffer.get(offset + 2) & 0xff) << 16) |
                ((buffer.get(offset + 3)       ) << 24));
    }
public static int PretoNonPre(int pre) {
    int a = pre >>> 24;
    if (a == 0xff || a == 0x00) return pre;
    int r = (pre >> 16) & 0xff;
    int g = (pre >>  8) & 0xff;
    int b = (pre      ) & 0xff;
    int halfa = a >> 1;
    r = (r >= a) ? 0xff : (r * 0xff + halfa) / a;
    g = (g >= a) ? 0xff : (g * 0xff + halfa) / a;
    b = (b >= a) ? 0xff : (b * 0xff + halfa) / a;
    return (a << 24) | (r << 16) | (g << 8) | b;
}