向Word中插入图片,C#编写的生成缩略图程序

一 . {向Word中插入图片。}
procedure PasteImage(Mydoc: TWordDocument{目标Word文档}; PasPicture: Tpicture; ParagraphsNum: integer{段落序号});
{向Word中插入图片。}
var
Adata: Thandle; 
// 临时句柄变量。
Apalette: HPALETTE;  // 临时变量。
MyFormat: Word;  // Word类型变量
TempImage: Timage;  // Image类型的临时变量。
begin
TempImage :
=  Timage.Create(application); // 产生一个Image的实例。
tempimage.parent : =  nil;
TempImage.Picture.Assign(PasPicture); 
// 给实例 付值。
try
TempImage.Picture.SaveToClipboardFormat(MyFormat, Adata, Apalette);
// 把剖面图发送到剪贴板,设定句柄。
ClipBoard.SetAsHandle(MyFormat, Adata);
finally
Mydoc.Paragraphs.Item(ParagraphsNum).Range.Paste;
// 把剪贴板上的图片贴到word的指定段落。
end;
end;


二. C#编写的生成缩略图程序  
if (fileupload.PostedFile != null )
     {     
      
// addto为要添加的属性,aboutfile为文件说明
       string  nam  =  fileupload.PostedFile.FileName ;
      
// 取得文件名(抱括路径)里最后一个"."的索引
       int  i =  nam.LastIndexOf( " . " );
      
// 取得文件扩展名
       string  newext  = nam.Substring(i);
      
// 这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
      DateTime now  =  DateTime.Now; 
      
string  newname = now.DayOfYear.ToString() + fileupload.PostedFile.ContentLength.ToString(); 
      
// 保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
      
// 注意: 我这里用Server.MapPath()取当前文件的相对目录.在asp.net里""必须用"/"代替,把"upload/"改成"/upload/"就成了取当前文件的绝对目录了
      fileupload.PostedFile.SaveAs(Server.MapPath( " upload/ " + newname + newext)); 
      
// 得到这个文件的相关属性:文件名,文件类型,文件大小
      
// fname.Text=myFile.PostedFile.FileName;
      
// fenc.Text=myFile.PostedFile.ContentType ;
      
// fsize.Text=myFile.PostedFile.ContentLength.ToString();
      
// 下面是生成缩略图 
      System.Drawing.Image image,aNewImage;
      
int  width,height,newwidth,newheight;      
      image
= System.Drawing.Image.FromFile(Server.MapPath( " upload/ " + newname.ToString() + newext.ToString()));
      System.Drawing.Image.GetThumbnailImageAbort callb 
= new  System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);    
      width
= image.Width;
      height
= image.Height;
      
if (firstpageshow.SelectedValue.ToString() == " 1 " && fenlei.SelectedValue.ToString() == " 5 " )
      {
       newwidth
= 203 ;newheight = 86 ;       
       newheight
= height * newwidth / width;
      }
      
else   if (isweekman.SelectedValue.ToString() == " 1 " )
      {
       newwidth
= 171 ;newheight = 111 ;
       newheight
= height * newwidth / width;
      }
      
else   if (firstpageshow.SelectedValue.ToString() == " 1 " && fenlei.SelectedValue.ToString() == " 3 " )
      {
       newwidth
= 171 ;newheight = 111 ;
       newheight
= height * newwidth / width;
      }
      
else
      {
       newwidth
= 62 ;newheight = 80 ;
       newheight
= height * newwidth / width;
      }
      aNewImage
= image.GetThumbnailImage(newwidth,newheight,callb, new  System.IntPtr());
      aNewImage.Save(Server.MapPath(
" upload/ " + " small_ " + newname + newext));
      image.Dispose();
      
// 生成缩略图 生成并保存完毕,保存名是在原图名前加了一个small_。
      pic = " upload/ " + newname.ToString() + newext.ToString();
      smallpic
= " upload/small_ " + newname.ToString() + newext.ToString();
     }
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值