663 new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE,
664 width, height,
665 numBands,
666 numBands * width,
667 bandOffsets);
668
669 colorModel =
670 ImageUtil.createColorModel(colorSpace, sampleModel);
671 }
672
673 originalSampleModel = sampleModel;
674 originalColorModel = colorModel;
675
676 // Reset to the start of bitmap; then jump to the
677 //start of image data
678 iis.reset();
679 iis.skipBytes(bitmapOffset);
680 gotHeader = true;
681 }
682
683 public Iterator getImageTypes(int imageIndex)
684 throws IOException {
685 checkIndex(imageIndex);
686 try {
687 readHeader();
688 } catch (IllegalArgumentException e) {
689 throw new IIOException(I18N.getString("BMPImageReader6"), e);
690 }
691 ArrayList list = new ArrayList(1);
692 list.add(new ImageTypeSpecifier(originalColorModel,
693 originalSampleModel));
694 return list.iterator();
695 }
696
697 public ImageReadParam getDefaultReadParam() {
698 return new ImageReadParam();
699 }
700
701 public IIOMetadata getImageMetadata(int imageIndex)
702 throws IOException {
703 checkIndex(imageIndex);
704 if (metadata == null) {
705 try {
706 readHeader();
707 } catch (IllegalArgumentException e) {
708 throw new IIOException(I18N.getString("BMPImageReader6"), e);
709 }
710 }
711 return metadata;
895
896 case VERSION_4_1_BIT:
897 read1Bit(bdata);
898 break;
899
900 case VERSION_4_4_BIT:
901 switch((int)compression) {
902
903 case BI_RGB:
904 read4Bit(bdata);
905 break;
906
907 case BI_RLE4:
908 readRLE4(bdata);
909 break;
910
911 default:
912 throw new
913 IIOException(I18N.getString("BMPImageReader1"));
914 }
915
916 case VERSION_4_8_BIT:
917 switch((int)compression) {
918
919 case BI_RGB:
920 read8Bit(bdata);
921 break;
922
923 case BI_RLE8:
924 readRLE8(bdata);
925 break;
926
927 default:
928 throw new
929 IIOException(I18N.getString("BMPImageReader1"));
930 }
931 break;
932
933 case VERSION_4_16_BIT:
934 read16Bit(sdata);
|
663 new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE,
664 width, height,
665 numBands,
666 numBands * width,
667 bandOffsets);
668
669 colorModel =
670 ImageUtil.createColorModel(colorSpace, sampleModel);
671 }
672
673 originalSampleModel = sampleModel;
674 originalColorModel = colorModel;
675
676 // Reset to the start of bitmap; then jump to the
677 //start of image data
678 iis.reset();
679 iis.skipBytes(bitmapOffset);
680 gotHeader = true;
681 }
682
683 public Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex)
684 throws IOException {
685 checkIndex(imageIndex);
686 try {
687 readHeader();
688 } catch (IllegalArgumentException e) {
689 throw new IIOException(I18N.getString("BMPImageReader6"), e);
690 }
691 ArrayList<ImageTypeSpecifier> list = new ArrayList<>(1);
692 list.add(new ImageTypeSpecifier(originalColorModel,
693 originalSampleModel));
694 return list.iterator();
695 }
696
697 public ImageReadParam getDefaultReadParam() {
698 return new ImageReadParam();
699 }
700
701 public IIOMetadata getImageMetadata(int imageIndex)
702 throws IOException {
703 checkIndex(imageIndex);
704 if (metadata == null) {
705 try {
706 readHeader();
707 } catch (IllegalArgumentException e) {
708 throw new IIOException(I18N.getString("BMPImageReader6"), e);
709 }
710 }
711 return metadata;
895
896 case VERSION_4_1_BIT:
897 read1Bit(bdata);
898 break;
899
900 case VERSION_4_4_BIT:
901 switch((int)compression) {
902
903 case BI_RGB:
904 read4Bit(bdata);
905 break;
906
907 case BI_RLE4:
908 readRLE4(bdata);
909 break;
910
911 default:
912 throw new
913 IIOException(I18N.getString("BMPImageReader1"));
914 }
915 break;
916
917 case VERSION_4_8_BIT:
918 switch((int)compression) {
919
920 case BI_RGB:
921 read8Bit(bdata);
922 break;
923
924 case BI_RLE8:
925 readRLE8(bdata);
926 break;
927
928 default:
929 throw new
930 IIOException(I18N.getString("BMPImageReader1"));
931 }
932 break;
933
934 case VERSION_4_16_BIT:
935 read16Bit(sdata);
|