예제 #1
0
        public override FieldValue[] GetField(Tiff tif, TiffTag tag)
        {
            OJpegCodec sp = tif.m_currentCodec as OJpegCodec;

            Debug.Assert(sp != null);

            FieldValue[] result = null;

            switch (tag)
            {
            case TiffTag.JPEGIFOFFSET:
                result = new FieldValue[1];
                result[0].Set(sp.m_jpeg_interchange_format);
                break;

            case TiffTag.JPEGIFBYTECOUNT:
                result = new FieldValue[1];
                result[0].Set(sp.m_jpeg_interchange_format_length);
                break;

            case TiffTag.YCBCRSUBSAMPLING:
                if (!sp.m_subsamplingcorrect_done)
                {
                    sp.OJPEGSubsamplingCorrect();
                }

                result = new FieldValue[2];
                result[0].Set(sp.m_subsampling_hor);
                result[1].Set(sp.m_subsampling_ver);
                break;

            case TiffTag.JPEGQTABLES:
                result = new FieldValue[2];
                result[0].Set(sp.m_qtable_offset_count);
                result[1].Set(sp.m_qtable_offset);
                break;

            case TiffTag.JPEGDCTABLES:
                result = new FieldValue[2];
                result[0].Set(sp.m_dctable_offset_count);
                result[1].Set(sp.m_dctable_offset);
                break;

            case TiffTag.JPEGACTABLES:
                result = new FieldValue[2];
                result[0].Set(sp.m_actable_offset_count);
                result[1].Set(sp.m_actable_offset);
                break;

            case TiffTag.JPEGPROC:
                result = new FieldValue[1];
                result[0].Set(sp.m_jpeg_proc);
                break;

            case TiffTag.JPEGRESTARTINTERVAL:
                result = new FieldValue[1];
                result[0].Set(sp.m_restart_interval);
                break;

            default:
                return(base.GetField(tif, tag));
            }

            return(result);
        }