首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将.dcm转换为jpeg类型的jpeg时出错-无损

将.dcm转换为jpeg类型的jpeg时出错-无损
EN

Stack Overflow用户
提问于 2014-09-27 16:46:24
回答 1查看 1.4K关注 0票数 0

在使用ImageIo将DCM转换为jpg时,我被1.2.840.10008.1.2.4.70 - JPEG Lossless, Non-Hierarchical, First-Order Prediction卡住了。

我已经按照here的指示安装了JAI ImageIO,而ImageIO.getReaderFormatNames()正在提供raw jpeg tif JFIF WBMP jpeg-lossless jpeg-ls PNM JPG DICOM wbmp PNG JPEG dicom jpeg 2000 tiff BMP JPEG2000 RAW JPEG-LOSSLESS jpeg2000 GIF TIF TIFF jpg bmp pnm jfif png JPEG 2000 gif JPEG-LS

然而,在使用reader读取缓冲图像时,我在线程"main":java.lang.IndexOutOfBoundsException: imageIndex out of bounds中得到异常。这是我的阅读器代码:

代码语言:javascript
复制
    ByteArrayInputStream bais = new ByteArrayInputStream(dicomData); //byte array of DICOM data
    ImageIO.scanForPlugins();
    Iterator<ImageReader> iter = ImageIO
                    .getImageReadersByFormatName("jpeg-lossless");
    ImageReader reader = (ImageReader) iter.next();
    ImageReadParam param = (ImageReadParam) reader.getDefaultReadParam();
    ImageInputStream iis = ImageIO.createImageInputStream(bais);
    reader.setInput(iis, false);        
    BufferedImage  buff = reader.read(0, param); // Error at this line 'imageIndex out of bounds!'
    iis.close(); 

这是做这件事的正确方式还是其他方式?

EN

回答 1

Stack Overflow用户

发布于 2014-12-31 23:30:24

不能使用jpeg无损ImageReader读取dicom part 10文件。您应该考虑使用dcm4che imageio ImageReader来读取该文件。当它实际到达内容的像素数据部分时,它将利用JAI jpeg图像阅读器来解压缩图像内容。

http://www.dcm4che.org/confluence/display/d2/dcm4che2+DICOM+Toolkit

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26072939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档