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

本文介绍了一种在Word文档中插入图片的方法,并提供了使用C#生成图片缩略图的示例代码。针对不同的应用场景,可以通过调整参数来定制缩略图尺寸。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 . {向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();
     }
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值