• asp.net中生成缩略图并添加版权实例代码


    这篇文章介绍了asp.net中生成缩略图并添加版权实例代码,有需要的朋友可以参考一下
    复制代码代码如下:

    //定义image类的对象
    Drawing.Image image,newimage;
    //图片路径
    protected string imagePath;
    //图片类型
    protected string imageType;
    //图片名称
    protected string imageName;
    //提供一个回调方法,用于确定Image对象在执行生成缩略图操作时何时提前取消执行
    //如果此方法确定 GetThumbnailImage 方法应提前停止执行,则返回 true;否则返回 false
    System.Drawing.Image.GetThumbnailImageAbort callb = null;

    private void sm_Click(object sender, System.EventArgs e)
    {
    string mPath;

    if("" != File1.PostedFile.FileName) //File1为上传文件控件
    {
    imagePath = File1.PostedFile.FileName;
    //取得图片类型
    imageType= imagePath.Substring(imagePath.LastIndexOf(".")+1);
    //取得图片名称
    imageName = imagePath.Substring(imagePath.LastIndexOf("\")+1);
    //判断是否是JPG或者GIF图片,这里只是举个例子,并不一定必须是这两种图片
    if("jpg" != imageType && "gif" != imageType)
    {
    Response.Write("<script language='javascript'> alert('对不起!请您选择jpg或者gif格式的图片!');</script>");
    return;
    }
    else
    {
    try
    {
    //建立虚拟路径
    mPath=Server.MapPath("UploadFiles");
    //保存到虚拟路径
    File1.PostedFile.SaveAs(mPath+"\"+imageName);

    //显示原图, imageSource为图片控件
    //imageSource.ImageUrl = "UploadFiles/"+imageName;

    //为上传的图片建立引用
    image=System.Drawing.Image.FromFile(mPath+"\"+imageName); 
    //生成缩略图
    newimage=image.GetThumbnailImage(200,200,callb,new System.IntPtr());
    //把缩略图保存到指定的虚拟路径
    newimage.Save(Server.MapPath("UploadFiles")+"\small"+imageName);
    //释放image对象占用的资源
    image.Dispose();
    //释放newimage对象的资源
    newimage.Dispose();
    //显示缩略图

    AddTextToImg ("UploadFiles/"+"small"+imageName,"Pic Info"); // 在图片上加入信息说明
    Image1.ImageUrl = "UploadFiles/"+"small"+imageName;

    Script.Alert("上传成功!");
    }
    catch
    {
    Script.Alert("上传失败!");
    }

    } // end else
    }

    // 在图片上加入自己的信息,
    // AddTextToImg (physicPath,"Pic Info");
    private void AddTextToImg(string fileName,string text) 

    //string sss = MapPath(fileName);

    if ( !File.Exists ( fileName)) {
    throw new FileNotFoundException("The file don't exist!"); 
    } // www.jbxue.com

    //还需要判断文件类型是否为图像类型,这里就不赘述了

    System.Drawing.Image image = System.Drawing.Image.FromFile(fileName);//MapPath(fileName));
    Bitmap bitmap = new Bitmap(image,image.Width,image.Height); 
    Graphics g = Graphics.FromImage(bitmap);

    float fontSize = 22.0f; //字体大小
    float textWidth = text.Length*fontSize; //文本的长度 
    //下面定义一个矩形区域,以后在这个矩形里画上白底黑字
    float rectX = 0;
    float rectY = 0;
    float rectWidth = text.Length*(fontSize+18);
    float rectHeight = fontSize+18;
    //声明矩形域
    RectangleF textArea = new RectangleF(rectX,rectY,rectWidth,rectHeight);
    Font font = new Font("宋体",fontSize);//定义字体
    Brush whiteBrush = new SolidBrush(Color.White);
    Brush blackBrush = new SolidBrush(Color.Black);
    g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight);
    g.DrawString(text,font,whiteBrush,textArea);
    MemoryStream ms = new MemoryStream();
    //保存为Jpg类型
    bitmap.Save(ms,ImageFormat.Jpeg);

    //输出处理后的图像,这里为了演示方便,我将图片显示在页面中了
    /**//* Response.Clear();
    Response.ContentType = "image/jpeg";
    Response.BinaryWrite( ms.ToArray() );
    */
    FileStream fs=new FileStream(fileName, FileMode.OpenOrCreate);//.CreateNew);
    fs.Write(ms.ToArray(),0,ms.ToArray().Length);
    fs.Close(); // www.jbxue.com

    Image1.ImageUrl = fileName; // 将图片显示在Image控件中
    g.Dispose();
    bitmap.Dispose();
    image.Dispose();
    }

  • 相关阅读:
    Maximum Profit Aizu
    Maximum Profit Aizu
    Codeforces Round #552 (Div. 3) —— B. Make Them Equal
    Codeforces Round #552 (Div. 3) —— B. Make Them Equal
    每周一题 —— 3n+1问题
    每周一题 —— 3n+1问题
    Georgia and Bob POJ
    Georgia and Bob POJ
    LeetCode 292. Nim Game
    OpenCV:初试牛刀-带滚动条的视频播放-2
  • 原文地址:https://www.cnblogs.com/linuxnotes/p/3411666.html
Copyright © 2020-2023  润新知