이미지에 경로를 그리는 작은 프로그램을 Java로 작성하고 있습니다. 이렇게하려면, 나는 다음과 같은 코드를 가지고BufferedImage : 빨간색이 회색으로 표시됩니다.
경로 (ImageIO.read에서) X 및 Y 좌표와 이미지는 표준 BufferedImage의 옛 객체의 대기열입니다while(!path.isEmpty())
{
Position p = path.poll();
image.setRGB(p.getX(),p.getY(),Color.red.getRGB());
}
. 이 코드는 대기열에있는 이미지의 모든 픽셀에 빨간색 픽셀을 그립니다. 빨강 대신에,이 이미지를 파일에 쓸 때 나는 회색을 띤다.
Color.red.getRGB의 반환 값 0xFFFF0000이다. 빨간색으로 설정 한 후 픽셀에서 getRGB를 수행하면 0xFF7F7F7F가 다시 나타납니다.
저는 Java에 비교적 익숙하지 않으며 왜 이런 일이 일어나는지 전혀 모릅니다. 어떤 도움이라도 대단히 감사하겠습니다.
차이가 나는 경우 이미지는 .bmp 파일에서 가져옵니다.
잘 생각해보세요! 감사합니다 +1! –
위대한 답변 주셔서 감사합니다! 그게 내 문제 야. 나는 타입의 값을 검사했고 그것은 나에게 TYPE_BYTE_GRAY 인 10을 주었다. 이 값을 내가 어떻게 스스로 설정할 수 있는지 알고 있니? 아래쪽에 추가 한 링크를 체크 아웃했지만 형식 값에 대해 아무 것도 말하지 않았습니다 (BufferedImage를 직접 만들 때를 제외하고 나는 그 방법을 모릅니다.) 현재 ImageIO.read를 사용하고 있습니다. –
도움이 된 것을 기쁘게 생각합니다. 혼자서 이미지를 만드는 방법에 대한 내 답변의 첫 번째 링크를 참조하십시오. 또한 Java2D 자습서에는이 주제에 대한 더 자세한 내용이 담겨 있으며 "이미지 작업"의 마지막 두 하위 섹션 - 빈 이미지를 만든 다음로드 된 이미지를 그 위에 그려주는 방법을 보여줍니다. ImageIO를 사용하고 싶다면.read()에서 가장 간단한 해결책은 가장 좋아하는 이미지 편집기에서 파일을 열고 색상 BMP로 저장하는 것입니다. 그렇지 않으면 튜토리얼에 좋은 읽기를 제공하는 것이 좋습니다. :) –