C# TIF的合成和分割

public static bool SaveTif(string tempFilePath, string newTifFile)
        {
            try
            {
                MemoryStream ms = new MemoryStream();
                using (Tiff tif = Tiff.ClientOpen(@"in-memory", "w", ms, new TiffStream()))
                {
                    var files = OrderByNum1(Directory.GetFiles(tempFilePath));
                    foreach (var item in files)
                    {
                        using (Bitmap bmp = new Bitmap(item))
                        {
                            tif.SetField(TiffTag.PLANARCONFIG, PlanarConfig.CONTIG);
                            tif.SetField(TiffTag.IMAGEWIDTH, bmp.Width);
                            tif.SetField(TiffTag.IMAGELENGTH, bmp.Height);
                            tif.SetField(TiffTag.COMPRESSION, Compression.JPEG);
                            tif.SetField(TiffTag.PHOTOMETRIC, Photometric.YCBCR);
                            tif.SetField(TiffTag.YCBCRSUBSAMPLING, 2, 2);
                            tif.SetField(TiffTag.BITSPERSAMPLE, 8);
                            tif.SetField(TiffTag.SAMPLESPERPIXEL, 3);
                            tif.SetField(TiffTag.ROWSPERSTRIP, bmp.Height);
                            MemoryStream msi = new MemoryStream();
                            bmp.Save(msi, ImageFormat.Jpeg);
                            var data = msi.ToArray();
                            tif.WriteRawStrip(0, data, data.Length);
                            msi.Close();
                            bmp.Dispose();
                        }
                        tif.WriteDirectory();
                    }
                    FileStream fs = new FileStream(newTifFile, FileMode.Create);
                    ms.Seek(0, SeekOrigin.Begin);
                    fs.Write(ms.ToArray(), 0, (int)ms.Length);
                    fs.Close();
                    ms.Close();
                }
                return true;
            }
            catch
            {
                return false;
            }
        }



  public void imageSliderInit(string path)
        {
            imageSlider1.Images.Clear();
             Image img = Image.FromFile(path);
            Guid guid = (Guid)img.FrameDimensionsList.GetValue(0);
            FrameDimension dimension = new FrameDimension(guid);
            int totalPage = img.GetFrameCount(dimension);

            for (int i = 0; i < totalPage; i++)
            {
                var a = img.SelectActiveFrame(dimension, i);
                img.Save(ShootImagePathSplit + "\\" + i + ".gif", System.Drawing.Imaging.ImageFormat.Gif);
                FileStream fs1 = new System.IO.FileStream(ShootImagePathSplit + "\\" + i + ".gif", FileMode.Open, FileAccess.Read);
                Image image = System.Drawing.Image.FromStream(fs1);
                fs1.Close();
                fs1.Dispose();
                this.imageSlider1.Images.Add(image);
            }
        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值