zoukankan      html  css  js  c++  java
  • 缩略图不变形

    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)

  • 相关阅读:
    WPF 自定义CheckBox样式
    WPF中的动画——(二)From/To/By 动画
    C# 异步编程
    C# 二维码生成 ( QRCoder )
    ASP.NET Core中的依赖注入(2):依赖注入(DI)
    从零搭建分布式文件系统MinIO比FastDFS要更合适
    WPF : ControlTemplate和DataTemplate的区别
    wpf 中 theme 的使用 和 listview 模板的使用.
    wpf 中的DataTemplate 绑定控件
    HTTP状态码含义
  • 原文地址:https://www.cnblogs.com/kentyshang/p/566950.html
Copyright © 2011-2022 走看看