Je sais que possible de convertir une image en utilisant CS_GRAYJava Convertir ColorSpace de BufferedImage à CS_GRAY sans utiliser ConvertColorOp
public static BufferedImage getGrayBufferedImage(BufferedImage image) {
BufferedImageOp op = new ColorConvertOp(ColorSpace
.getInstance(ColorSpace.CS_GRAY), null);
BufferedImage sourceImgGray = op.filter(image, null);
return sourceImgGray;
}
cependant, c'est un goulot d'étranglement de mon programme. Je dois le faire souvent, sur des images de 800x600 pixels et prend environ 200-300ms pour que cette opération se termine, en moyenne. Je sais que je peux le faire beaucoup plus rapidement en utilisant une boucle pour faire une boucle dans les données de l'image et le régler tout de suite. D'autre part, le code ci-dessus construit une toute nouvelle image buffered 800x600 en échelle de gris. Je préfère simplement transformer l'image que je passe.
Est-ce que quelqu'un sait comment faire cela avec une boucle for et étant donné que l'image est l'espace colorimétrique RVB?