Tif文件转换成GIF列表

代码
 /// <summary>
        
/// 将TIF文件转换为GIF文件列表
        
/// </summary>
        
/// <param name="fileName">要转换的TIF文件</param>        
        
/// <returns>转换后生成的GIF文件路径</returns>
        public static IList<string> ConvertTifToGif(string fileName)
        {
            IList
<string> list = new List<string>();

            
string dic = AppDomain.CurrentDomain.BaseDirectory + "\\tempgif\\";

            
if (!Directory.Exists(dic))
            {
                Directory.CreateDirectory(dic);
            }

            
if (string.IsNullOrEmpty(fileName))
            {
                
throw new ArgumentException("转换的TIF文件路径不能为空");
            }

            FileInfo file 
= new FileInfo(fileName);

            
if (!file.Exists)
            {
                
throw new FileNotFoundException("待转换的TIF文件不存在");
            }

            Image imgObj 
= Image.FromFile(file.FullName);


            
//Image imgObj = imgObj2.GetThumbnailImage(imgObj2.Width / 3 * 2, imgObj2.Height / 3 * 2, null, IntPtr.Zero); //Image.FromFile(file.FullName);

            Guid objGuid 
= (Guid)imgObj.FrameDimensionsList.GetValue(0);

            FrameDimension objDimension 
= new FrameDimension(objGuid);
            

            
int totalImage = imgObj.GetFrameCount(objDimension);

            
for (int index = 0; index < totalImage; index++)
            {
                
string gifPath = dic + file.Name.Substring(0, file.Name.LastIndexOf('.')) + "_" + index + ".gif";

                
if (File.Exists(gifPath))
                {
                    File.Delete(gifPath);
                }

               
//EncoderParameter en = new EncoderParameter();

                imgObj.SelectActiveFrame(objDimension, index);
                imgObj.Save(gifPath, ImageFormat.Gif);
                FileInfo item 
= new FileInfo(gifPath);
                list.Add(
"tempgif\\" + item.Name);
            }

            
return list;
        }

 

posted @ 2010-08-20 14:07  Magicam  阅读(321)  评论(0编辑  收藏  举报