Exemple #1
0
        private byte[] GetArwBitmap()
        {
            TiffIFD tagSub              = _header.IFDs[0];
            var     tIImageStartOffset  = (from t in tagSub.tiffTags where t.TagID == 513 select t).FirstOrDefault().DataOffset;
            var     tIImageLengthOffset = (from t in tagSub.tiffTags where t.TagID == 514 select t).FirstOrDefault().DataOffset;

            return(CreateBitmap(tIImageStartOffset, tIImageLengthOffset, tagSub));
        }
Exemple #2
0
        private byte[] CreateBitmap(uint tIImageStartOffset, uint tIImageLengthOffset, TiffIFD tiffIFD)
        {
            byte[] Img = new byte[tIImageLengthOffset];
            Array.Copy(_content, tIImageStartOffset, Img, 0, tIImageLengthOffset);
            if (tiffIFD.Compression == 1 && tiffIFD.BitsPerSample[0] == 8 && tiffIFD.BitsPerSample[1] == 8 && tiffIFD.BitsPerSample[2] == 8)
            {
                return(ImageHelper.ConvertFromUncompressed((int)tiffIFD.Width, (int)tiffIFD.Height, ref Img));
            }
            if (tiffIFD.Compression == 1 && tiffIFD.BitsPerSample.Length == 1 && tiffIFD.BitsPerSample[0] == 16)
            {
                //byte[] bs = ImageHelper.ConvertFrom16bits565((int)tiffIFD.Width, (int)tiffIFD.Height, ref Img);
                byte[] bs = ImageHelper.ConvertFromCFA((int)tiffIFD.Width, (int)tiffIFD.Height, ref Img);
                //bs = ImageHelper.BayerDemosaic24((int)tiffIFD.Width, (int)tiffIFD.Height, ref bs);
                //bs = ImageHelper.BayerDemosaic24((int)tiffIFD.Width, (int)tiffIFD.Height, ref bs);
                //byte[] bs = ImageHelper.ConvertFromCFA((int)tiffIFD.Width, (int)tiffIFD.Height, ref Img);
                ////return bs;
                //bs = ImageHelper.BayerDemosaic24((int)tiffIFD.Width, (int)tiffIFD.Height, ref bs);

                return(ImageHelper.byteArrayToBMP((int)tiffIFD.Width, (int)tiffIFD.Height, ref bs));
            }
            if (tiffIFD.Compression == 1 && tiffIFD.BitsPerSample.Length == 1 && tiffIFD.BitsPerSample[0] == 12)
            {
                return(ImageHelper.byteArrayToBMP((int)tiffIFD.Width, (int)tiffIFD.Height, ref Img));
            }

            return(Img);
        }