Я хочу нарисовать изображение из файла на экране, bindTexture можно привязать только из банки - PullRequest
0 голосов
/ 04 октября 2019

Я кодирую customui для minecraft, я хочу добавить ImageModule для отображения изображения на экране, но я знаю только, как читать изображение из jar, а не из файла, Minecraft.getMinecraft (). GetTextureManager (). BindTexture() кажется только поддерживает ResouceLoaction.

public static void drawImage(ResourceLocation image, int x, int y) {
    ResourceLocation res = new ResourceLocation("example.jpg");

    res.getResourcePath();
    File picture = new File("C:/Users/aflyun/Pictures/Camera Roll/1.jpg");
    BufferedImage sourceImg = null;
    try {
        sourceImg = ImageIO.read(new FileInputStream(picture));
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return;
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return;
    }
    System.out.println(String.format("%.1f", picture.length() / 1024.0));
     int width = sourceImg.getWidth(); 
     int height = sourceImg.getHeight();
    // ScaledResolution scaledResolution = new
    // ScaledResolution(Minecraft.getMinecraft());
    GL11.glDisable((int) 2929);
    GL11.glEnable((int) 3042);
    GL11.glDepthMask((boolean) false);
    OpenGlHelper.glBlendFunc(770, 771, 1, 0);
    GL11.glColor4f((float) 1.0f, (float) 1.0f, (float) 1.0f, (float) 1.0f);
    Minecraft.getMinecraft().getTextureManager().bindTexture(image);
    Gui.drawModalRectWithCustomSizedTexture(x, y, 0.0f, 0.0f, width, height, width, height);
    GL11.glDepthMask((boolean) true);
    GL11.glDisable((int) 3042);
    GL11.glEnable((int) 2929);
}
...