바이트, 부호없는 short 및 정수 사이의 메모리 사용 차이를 알고 있지만 BufferedImage의 경우에는 '속도'차이가 있습니까?
이미지 저장을 위해 코드에서 이미지 유형을 사용하고 있지만 알파 레이어가 필요합니다. BufferedImage를 사용하면 ARGB가 제공되지만 Image 형식에서 변경 한 후에 코드가/상당히 느리고 느립니다 (일부 개체의 경우에만 변경되었습니다). 그래서 얻을 수있는 모든 성능 향상을 찾고 있습니다.
나는이 질문이 얼마나 어리 석다고 확신하지 못하기 때문에 어떤 답장에 대해서도 감사드립니다.BufferedImage INT/4BYTE/USHORT
2
A
답변
2
Tanaki는
나는 BufferedImage의에서 알파 채널을 사용하여 필요에 가장 좋은 알파 채널을 전치 승산하는 경우 것으로 나타났습니다. 예를 들어 :
// Create an ARGB image BufferedImage bi = new BufferedImage(512, 512, BufferedImage.TYPE_INT_ARGB); Graphics2D g = bi.createGraphics(); // Fill the background (for illustration) g.setColor(Color.black); g.fill(new Rectangle(0, 0, 512, 512)); AlphaComposite alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f)); // Keep the original composite Composite original = g.getComposite(); g.setComposite(alpha); // Paint with transparency Rectangle r = new Rectangle(100, 200, 50, 50); g.setColor(Color.magenta); g.fillRect(r); g.setComposite(original); // ... paint further shapes or images as necessary // ... g.dispose(); // Convert to a premultiplied alpha image for fast painting to a Canvas BufferedImage biPre = new BufferedImage(512, 512, BufferedImage.TYPE_INT_ARGB_PRE); Graphics2D gPre = biPre.createGraphics(); gPre.drawImage(bi, 0, 0, null); gPre.dispose(); // clean up: bi.flush(); // Now use biPre for painting to a Canvas, or a Component. // ... // Remember to flush it when done! biPre.flush();
TYPE_INT_ARGB 먼저 그림에 대한 이유는 예상대로 모든 알파가 그린 도착하도록하는 것입니다 (마다 미리 곱하지!). 그런 다음, 완료되면 전체 이미지를 TYPE_INT_ARGB_PRE에 칠하십시오. 그런 다음 데이터를 빠른 속도로 화면에 가져올 수 있습니다.
+0
고맙습니다. 문제가 해결되었습니다. – Tanaki
관련 문제
- 1. IKVM의 BufferedImage
- 2. Android의 BufferedImage
- 3. PApplet 내용으로 BufferedImage 만들기
- 4. Java에서 BufferedImage 인쇄
- 5. Java - BufferedImage 파일 변경
- 6. 회전하는 BufferedImage 인스턴스
- 7. Java BufferedImage 해상도
- 8. Java에서 BufferedImage & ColorModel
- 9. BufferedImage 크기 조정
- 10. 스윙의 BufferedImage imageType
- 11. BufferedImage - Gray Scale
- 12. BufferedImage 깜박임 문제가 있습니다.
- 13. BufferedImage 텍스처가 java3D에 나타나지 않습니다.
- 14. JTextPane에 로컬 이미지 표시 (BufferedImage?)
- 15. Java에서 BufferedImage 알파 마스크 설정
- 16. Image 객체를 BufferedImage 객체로 바꾸기
- 17. 무손실 및 동일 방법 - 파일에 BufferedImage
- 18. Java : 원시 BMP 파일 형식 데이터의 BufferedImage
- 19. Java ME 6에서 BufferedImage 클래스는 어떻게 되었습니까?
- 20. Java BufferedImage 파일 크기를 계산하는 방법
- 21. BufferedImage 및 YCbCr 색상 공간을 사용하는 방법은 무엇입니까?
- 22. Clojure/Swing/Java의 BufferedImage 및 ImageObserver에 문제가 발생했습니다.
- 23. Java의 동작을 지정하는 방법 BufferedImage resize : 평균이 아닌 픽셀 행에 대해 min이 필요합니다.
- 24. BufferedImage java : 색/알파 성분의 수는 4가 아니면 안되지만, 비트 배열의 길이는 2입니다.
- 25. Java/Swing 오프 스크린 렌더링 (Cobra HTMLPanel -> BufferedImage) 문제 : 구성 요소가 먼저 다시 그려지지 않습니다.
- 26. Bufferedimage 비트 마스크 연산 - 다른 이미지를 마스크로 사용하여 이미지에 색상 적용
- 27. BufferedImage + jPanel Qt를 사용하여 C++에서 이미지를 보는 것과 동일한 방법
- 28. java ByteArrayOutputStream 클래스 정보
- 29. JFrame 스크린 샷에서 제목 표시 줄을 제거하는 방법은 무엇입니까?
- 30. ImageIO : jif to jpeg 문제 -> 이미지가 핑크색이 됨
프로파일 러는 무엇을 말합니까? – trashgod
'프로파일 러'가 무슨 뜻입니까? – Tanaki
['jvisualvm'] (예 : http://download.oracle.com/javase/6/docs/technotes/tools/share/jvisualvm.html). – trashgod