을 Heres 오류의 길이 :이상한 PNG 오류 : 잘못된 IHDR 청크
Exception in thread "main" javax.imageio.IIOException: I/O error reading PNG header!
at com.sun.imageio.plugins.png.PNGImageReader.readHeader(PNGImageReader.java:307)
at com.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:637)
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1212)
at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1560)
at javax.imageio.ImageIO.read(ImageIO.java:1422)
at javax.imageio.ImageIO.read(ImageIO.java:1282)
at Bundle.iconExists(Bundle.java:139)
at Bundle.dPhIconExists(Bundle.java:158)
at BundleAnalyzer.supports6(BundleAnalyzer.java:14)
at TheifReader.<init>(TheifReader.java:14)
at TheifReader.main(TheifReader.java:63)
Caused by: javax.imageio.IIOException: Bad length for IHDR chunk!
at com.sun.imageio.plugins.png.PNGImageReader.readHeader(PNGImageReader.java:239)
... 10 more
과 원인을 heres 코드 :
bimg = ImageIO.read(icons[i]);
아이콘 파일의 배열입니다. 이상한 점은 내 컴퓨터가 모든 이미지 뷰어에서 정확하게 이미지를 읽을 수 있다는 것입니다. 오류를 검색하는 것은 결과를주지 못했습니다. 읽어야하는 이미지가 많아서 이미지의 크기를 BufferedImage로 바꾸는 대신 다른 방법이 있습니까? 문제가 해결 될까요? 이러한 이미지를 수정하는 방법이 있습니까? iOS 기기의 앱 아이콘을 수집하도록했습니다. 내 장치에서 테스트 한 결과 오류는 발생하지 않았지만, 이전에 zip 파일의 일부로 보낸 적이 있지만 동일한 방식으로 수집되었지만이 오류가 정기적으로 발생했습니다. 압축에 대해 내가 아는 모든 것은 이것이 일어나서는 안된다. 어디서부터 시작해야할지 모르겠다. Here is an example of a failed image.
내 프로그램에서이 부분에 필요한 것은 이미지 크기뿐입니다. 나는 이것이 메타 데이터를 읽음으로써 얻을 수 있다고 믿지만, 이것에 대해서도 자바로 찾을 수 없다. PNG specifiaction에 따르면
그 덩어리와 ** 잘못된 위치는 PNG가 Apple의 독점적 인'pngcrush '빌드에 의해 튀겨 졌음을 나타냅니다. 내 자신의 ['pngdefry'] (http://www.jongware.com/pngdefry.html)를 사용해보십시오. 알파가 포함되어있는 경우 미리 곱셈됩니다. 'pngdefry'도 그것을 복원 할 것입니다. – usr2564301
.. 제명 후,'pngcheck'은 "불법 (최근에 승인되지 않은 한) 알려지지 않은 공개 청크" "iDOT"에 불평합니다.그것은 또한 * 나쁘게 * 압축 :) 어떤 소프트웨어가 그것을 만들었지? (편집) 크기 만 필요하면'pngdefry'는 모든 종류의 PNG에 대해 이것을 * 어쨌든 *보고합니다. – usr2564301
@Jongware 나는 당신이 옳다고 믿습니다. 애플의 독점권이다. 그게 문제입니다. 언제든지 내부 표현을 바꿀 수 있습니다 ... [iphonedevwiki] (http://iphonedevwiki.net/index.php/CgBI_file_format)에 따르면 zlib 머리글/바닥 글과 CRC도 제거됩니다. 내 생각에 CgBI 덩어리는 그들이 어떤 스펙 위반 사항을 적용했는지 알려 주어야하지만, 물론 문서화되어 있지 않습니다. – haraldK