缩略图不变形

简介:

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

相关文章
|
7月前
|
前端开发 JavaScript
前端必看的8个HTML+CSS技巧 (六) 裁剪图像的动画
前端必看的8个HTML+CSS技巧 (六) 裁剪图像的动画
107 0
Photoshop - 怎么让画布大小自适应图像大小?
Photoshop - 怎么让画布大小自适应图像大小?
1082 0
Photoshop - 怎么让画布大小自适应图像大小?
|
5月前
|
机器学习/深度学习 前端开发 算法
canvas系列教程03 —— 线的样式、绘制文本、操作图片(图片的渲染、缩放、裁剪、切割、平铺、特效)、变换元素(平移、缩放、旋转)(二)
canvas系列教程03 —— 线的样式、绘制文本、操作图片(图片的渲染、缩放、裁剪、切割、平铺、特效)、变换元素(平移、缩放、旋转)(二)
92 0
|
5月前
|
存储 前端开发 JavaScript
canvas系列教程03 —— 线的样式、绘制文本、操作图片(图片的渲染、缩放、裁剪、切割、平铺、特效)、变换元素(平移、缩放、旋转)(一)
canvas系列教程03 —— 线的样式、绘制文本、操作图片(图片的渲染、缩放、裁剪、切割、平铺、特效)、变换元素(平移、缩放、旋转)(一)
488 0
|
6月前
|
算法 Python
扭曲图像 鼻子拉伸
【6月更文挑战第28天】
31 0
|
7月前
|
算法 计算机视觉
缩放图像
【5月更文挑战第12天】缩放图像。
46 5
|
计算机视觉 C++ Python
Python相片图片编辑工具-翻转旋转亮度磨皮裁剪添加文字
这篇博客针对<<Python相片图片编辑工具-翻转旋转亮度磨皮裁剪添加文字>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
113 0
|
算法 定位技术 C#
C#开发:不规则裁切图片
C#开发:不规则裁切图片
159 0
平铺文理+拉伸按钮图片
平铺文理+拉伸按钮图片
81 0
|
Java Maven
thumbmailator组件对图像的使用缩放、裁剪、旋转、格式钻换
thumbmailator组件对图像的使用缩放、裁剪、旋转、格式钻换
154 0