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);
}
}
C# TIF的合成和分割
最新推荐文章于 2023-12-26 10:16:45 发布