using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (DialogResult.OK == openFileDialog1.ShowDialog())
{
TifToJpg(openFileDialog1.FileName);
statusStrip1.Items[0].Text = "-----图片转换完毕-----";
}
progressBar1.Value = 100;
label1.Text = "完成 100%";
}
private void TifToJpg(string strTifPath)
{
#region 图像处理原始版本 --注释
//System.Drawing.Image = System.Drawing.Image.FromFile(strTifPath);
//uploadTif 中tif图形文件
////取得图片大小
//System.Drawing.Size size = new System.Drawing.Size(image.Width, image.Height);
////新建一个bmp图片
//System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(size.Width, size.Height);
////新建一个画板
//System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
////设置高质量插值法
//g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
////设置高质量,低速度呈现平滑程度
//g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
////清空一下画布
//g.Clear(System.Drawing.Color.White);
////在指定位置画图
//g.DrawImage(image, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), new System.Drawing.Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel);
//保存高清晰度的缩略图
//bitmap.Save(strNewFilePath,System.Drawing.Imaging.ImageFormat.Tiff);
//uploadTif 中tif文件
//System.IO.MemoryStream ms = new System.IO.MemoryStream();
//bitmap.Save(strTifPath.Substring(0, strTifPath.LastIndexOf('.') + 1) + "jpg ", System.Drawing.Imaging.ImageFormat.Jpeg);
//image.FrameDimensionsList[0]
#endregion
progressBar1.Value = 10;
label1.Text = "完成 10%";
//uploadTif 中tif图形文件
System.Drawing.Bitmap image = (Bitmap)System.Drawing.Image.FromFile(strTifPath);
//获取tif图片的第一维
System.Drawing.Imaging.FrameDimension objDimension = new System.Drawing.Imaging.FrameDimension(image.FrameDimensionsList[0]);
//遍历第一维所有帧数
int pageNumber = image.GetFrameCount(objDimension);
for (int i = 0; i < pageNumber; i++)
{
//选定第i帧
image.SelectActiveFrame(objDimension, i);
//取得图片大小
System.Drawing.Size size = new System.Drawing.Size(image.Width, image.Height);
//新建一个bmp图片
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(size.Width, size.Height);
//新建一个画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
//设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空一下画布
g.Clear(System.Drawing.Color.White);
//在指定位置画图
g.DrawImage((Image)image, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), new System.Drawing.Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel);
//翻转图片
//bitmap.RotateFlip(RotateFlipType.Rotate270FlipXY);
//调整亮度
//将每帧保存到imag图片里面
bitmap.Save(strTifPath.Substring(0, strTifPath.LastIndexOf('.')) + "temp" + i.ToString() + ".jpg ", System.Drawing.Imaging.ImageFormat.Jpeg);
//释放临时图片资源
g.Dispose();
bitmap.Dispose();
}
progressBar1.Value = 50;
label1.Text = "完成 50%";
//释放tif图片资源
image.Dispose();
}
private void progressBar1_Click(object sender, EventArgs e) { } }}