对图像的处理操纵

博客主要提及了图像格式的转换,这属于信息技术中图像处理领域的内容。图像格式转换在实际应用中有诸多用途,能满足不同场景对图像格式的要求。

一、图像格式的转换

None.gifstring strFilePathName = ImageShow.ImageUrl;
None.gif            System.Drawing.Image i 
= System.Drawing.Image.FromFile(strFilePathName);
None.gif        
None.gif            
//以下得到在服务器上保存的文件路径名称
None.gif
            string strFileName = Path.GetFileNameWithoutExtension(strFilePathName);
None.gif            ImageFormat f 
= ImageFormat.Bmp;
None.gif            
switch(ddlFormat.SelectedItem.Text.ToLower())//toLower为转换为小写
ExpandedBlockStart.gifContractedBlock.gif
            dot.gif{
InBlock.gif                
case "bmp":
InBlock.gif                    
break;
InBlock.gif                
case "jpeg":
InBlock.gif                    f 
= ImageFormat.Jpeg;
InBlock.gif                    
break;
InBlock.gif                
case "gif":
InBlock.gif                    f 
= ImageFormat.Gif;
InBlock.gif                    
break;
InBlock.gif                
case "png":
InBlock.gif                    f 
= ImageFormat.Png;
InBlock.gif                    
break;
InBlock.gif                
case "tiff":
InBlock.gif                    f 
= ImageFormat.Tiff;
InBlock.gif                    
break;
ExpandedBlockEnd.gif            }

None.gif            
string strSeverPath=tbPath.Text+"\\"+strFileName+"."+
None.gif                ddlFormat.SelectedItem.Text;
None.gif            i.Save(strSeverPath,f);

下面是实现在图片上写字、切割图片、拉伸和旋转
 对图片的处理和显示最好放在不同的页面,负责回显示满的
比如写字,切割等按钮放在一个页面,对这些操作放在Session里面保存
 比如按钮执行  Session["Add"] = true;  Session["Path"] = InputFile.PostedFile.FileName是保存图片的路径,在改页面放一个图片控件比如:
<?xml:namespace prefix = asp /><asp:Image id="Image1"  runat="server" Height="370px" Width="508px" ImageUrl="genpicture.aspx"></asp:Image>
genpicture.aspx这个是另一个页面,在这个页面来处理图像。
代码如下:
None.gifif(Session["Path"]!=null)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif
//                Response.Clear();
InBlock.gif
//                Response.Write("<br>");
InBlock.gif
//                Response.Write("<br>");
InBlock.gif
                System.Drawing.Image g=System.Drawing.Image.FromFile(Session["Path"].ToString());
InBlock.gif                System.Drawing.Imaging.ImageFormat f
=g.RawFormat;
InBlock.gif                Bitmap b
=new Bitmap(g);
InBlock.gif                
if(Session["RotateFlip"]!=null)
InBlock.gif                    b.RotateFlip(RotateFlipType.Rotate90FlipNone);
//旋转图片
InBlock.gif

InBlock.gif                Graphics gh
=Graphics.FromImage(b);
InBlock.gif                
if(Session["Add"]!=null)
InBlock.gif                    gh.DrawString(
"MSDN荣誉出品",new Font("宋体",50),Brushes.Red ,5,b.Height-100);//给图片上添加文字
InBlock.gif                
//             拉伸图片 
InBlock.gif
                if(Session["Exp"]!=null)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    gh.Clear(Color.White);
InBlock.gif                    gh.DrawImage(g,
new Rectangle(10,10,50,50),new Rectangle(0,0,g.Width,g.Height),GraphicsUnit.Pixel);//17
ExpandedSubBlockEnd.gif
                }

InBlock.gif                
//"切割图片 
InBlock.gif
                if(Session["Cut"]!=null)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    gh.Clear(Color.White);
InBlock.gif                    gh.DrawImage(g,
50,100,new Rectangle(80,80,410,410),GraphicsUnit.Pixel); //19
ExpandedSubBlockEnd.gif
                }

InBlock.gif 
InBlock.gif                gh.SmoothingMode
=SmoothingMode.AntiAlias;
InBlock.gif                b.Save(Response.OutputStream,f);                         
InBlock.gif                gh.Dispose();
InBlock.gif                b.Dispose();
InBlock.gif                g.Dispose();
InBlock.gif                Session[
"RotateFlip"]=null;
InBlock.gif                Session[
"Cut"]=null;
InBlock.gif                Session[
"Exp"]=null;
InBlock.gif                Session[
"Exp"]=null;
InBlock.gif                Session[
"Cut"]=null;
InBlock.gif
ExpandedBlockEnd.gif            }

下面是对图片的一些基本操作画图
None.gifBitmap b = new Bitmap(600,600);
None.gif            Graphics g 
= Graphics.FromImage(b);//GDI+中最重要的类
None.gif
            g.Clear(Color.Red);
None.gif            Pen p 
= new Pen(Color.Green,3.0f);//铅笔
None.gif
            g.DrawLine(p,0,0,600,600);
None.gif            g.DrawLine(p,
600,0,0,600);
None.gif            g.DrawEllipse(p,
0,0,100,100);
None.gif            SolidBrush sb 
= new SolidBrush(Color.Blue);//固体刷
None.gif
            g.FillEllipse(sb,100,100,200,200);
None.gif            g.FillRectangle(sb,
300,300,100,100);
None.gif            Font f 
= new Font("宋体",40);//字体
None.gif
            g.DrawString("哈哈,不错!",f,sb,0,300);
None.gif            Point[] arrP 
= new Point[5];//point为基本的点
None.gif
            arrP[0= new Point(200,200);
None.gif            arrP[
1= new Point(200,400);
None.gif            arrP[
2= new Point(500,400);
None.gif            arrP[
3= new Point(500,600);
None.gif            arrP[
4= new Point(300,600);
None.gif            g.DrawPolygon(p,arrP);
None.gif            b.Save(Response.OutputStream,ImageFormat.Gif);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值