博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
缩略图不变形
阅读量:6833 次
发布时间:2019-06-26

本文共 2327 字,大约阅读时间需要 7 分钟。

Public Shared Sub MakeSmallImg(ByVal postFile As System.Web.HttpPostedFile, ByVal saveImg As String, ByVal Width As System.Double, ByVal Height As System.Double)

        Dim originalFilename As String = postFile.FileName
        '生成的高质量图片名称
        Dim strGoodFile As String = saveImg

        '从文件取得图片对象
        Dim image As System.Drawing.Image = System.Drawing.Image.FromStream(postFile.InputStream, True)

        Dim NewWidth, NewHeight As System.Double

        If (image.Width > image.Height) Then

            NewWidth = Width

            NewHeight = image.Height * (NewWidth / image.Width)

        Else

            NewHeight = Height

            NewWidth = (NewHeight / image.Height) * image.Width
        End If

        If (NewWidth > Width) Then

            NewWidth = Width

        End If
        If (NewHeight > Height) Then

            NewHeight = Height

        End If

        '取得图片大小

        Dim size As System.Drawing.Size = New System.Drawing.Size(CType(NewWidth, Integer), CType(NewHeight, Integer))
        '新建一个bmp图片
        Dim bitmap As System.Drawing.Image = New System.Drawing.Bitmap(size.Width, size.Height)
        '新建一个画板
        Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bitmap)
        '设置高质量插值法
        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High
        '设置高质量,低速度呈现平滑程度
        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality
        '清空一下画布
        g.Clear(Color.White)
        '在指定位置画图
        g.DrawImage(image, New System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), New System.Drawing.Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel)

        '文字水印

        'System.Drawing.Graphics G=System.Drawing.Graphics.FromImage(bitmap);
        'System.Drawing.Font f=new Font("宋体",10);
        'System.Drawing.Brush b=new SolidBrush(Color.Black);
        'G.DrawString("myohmine",f,b,10,10);
        'G.Dispose();

 

        '图片水印

        'System.Drawing.Image copyImage = System.Drawing.Image.FromFile(System.Web.HttpContext.Current.Server.MapPath("pic/1.gif"));
        'Graphics a = Graphics.FromImage(bitmap);
        'a.DrawImage(copyImage, new Rectangle(bitmap.Width-copyImage.Width,bitmap.Height-copyImage.Height,copyImage.Width, copyImage.Height),0,0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);

        'copyImage.Dispose();

        'a.Dispose();
        'copyImage.Dispose();

        '保存高清晰度的缩略图
        bitmap.Save(strGoodFile, System.Drawing.Imaging.ImageFormat.Jpeg)

        g.Dispose()

        image.Dispose()
        bitmap.Dispose()

    End Sub 

MakeSmallImg(PhotoPath.PostedFile, filePath, 140, 185)

本文转自kenty博客园博客,原文链接http://www.cnblogs.com/kentyshang/archive/2006/11/21/566950.html如需转载请自行联系原作者

kenty

你可能感兴趣的文章
开始带队开发
查看>>
myeclipse中java web项目修改内容,不能自动发布到tomcat的问题
查看>>
如何准备BAT技术面试答案(下)——Java研发方向
查看>>
2.C#基本语法和变量
查看>>
SQL笔记 --- 表完整性
查看>>
RBAC权限系统设计之我见
查看>>
玩转redis之redis 分片集群方案与实现
查看>>
如何让Redis Server运行更稳定
查看>>
weak_ptr 的 operator== 操作问题
查看>>
IOS写文件
查看>>
mysql小数数据类型
查看>>
js判断input输入保留正整数和两位小数实现方法
查看>>
redisson学习示例
查看>>
升级到 PHP 7.0
查看>>
error lnk2019 无法解析的外部符号
查看>>
ITSM--IT服务管理注意细则
查看>>
java list去重
查看>>
android中网络操作使用总结(http)
查看>>
JAVA中使用代码创建多数据源,并实现动态切换(一)
查看>>
理解Scroll View
查看>>