So I found a solution, for anyone else wanting to do a similar thing: I coded a function to get three different color values from the ingot (you could just as well do more by just adding coordinates to the coordinate array) that is used for each ingot in an ingot list once in the preInit() section and fills an array with the values that can be used in the class implementing IItemColor:
public int[] getColors(String name){
InputStream is;
BufferedImage image;
int[] res = {0,0,0};
int[] texture;
try {
String itemID;
itemID = Reference.MOD_ID + ":textures/items/" + name + "_ingot.png";
is = Minecraft.getMinecraft().getResourceManager().getResource((new ResourceLocation(itemID))).getInputStream();
image = ImageIO.read(is);
}catch(IOException e){e.printStackTrace();return res;}
int[][] coords = {{4,5,0},{8,10,6}};
for (int j = 0; j < 3; j++) {
texture = image.getRaster().getPixel(coords[0][j], coords[1][j], new int[4]);
res[j] = new Color(texture[0],texture[1],texture[2]).getRGB();
}
return res;
}
This code returns a three element integer array with the RGB values of the pixels [4,8], [5,10] and [0,6] from the texture defined as the name. As all my ingot names are saved in an array, I simply run through that array in a for loop and save the three result integers as array elements in a global array usable by all classes. Should the texture not exist, the function will return {0,0,0}, which results in the tools being colored black (though this could be changed to any color by simply changing the initial values of res to different numbers).
I hope I could help anyone trying to do something similar to what I did.