前文:实在是好久没有更新这个博客了。主要是本人现在不走技术路线,过了那个研究技术的年代了。现在做一些零散的很多事情。

今天突然收到猎头的邮件,看着心里激动啊。呵呵。当然,目前的状况也就看看,毕竟人生的目标和要求已经变了。此一时彼一时

但还是TMD激动啊。。。

翻了翻自己的文件夹,最近实在是没有什么原创的东西,把这个很久以前做的图片加水印的程序share出来,我做了些小封装。不算完全原创。

Imports Microsoft.VisualBasic
Imports System
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Drawing.Imaging
Imports System.IO

'code ex:
'Dim wm As New ImageDrawing.ImageModify
'        thefile.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath("1.jpg")) //thisfile is a file upload html control
'Dim imgoutput As Image = System.Drawing.Bitmap.FromFile(System.Web.HttpContext.Current.Server.MapPath("1.jpg"))

'        With wm
'            .WaterMarkImagePath = System.Web.HttpContext.Current.Server.MapPath("a.gif")
'            .LucencyPercent = 10
'            .ModifyImagePath = System.Web.HttpContext.Current.Server.MapPath("1.jpg")
'            .WaterImagePosition = ImageDrawing.ImageModify.WaterImagePositionType.RightBottom
'            .OutPath = System.Web.HttpContext.Current.Server.MapPath("2.jpg")
'            .DrawImage()
'        End With

Namespace ImageDrawing
    '/// <summary>
    '/// 图片修改类,主要是用来保护图片版权的
    '/// </summary>

Public Class ImageModify

#Region "member fields"
        Private mModifyImagePath As String = ""
        Private mWaterMarkImagePath As String = ""
        Private mWaterImagePosition As WaterImagePositionType
        Private mRightSpace As Int32
        Private mBottoamSpace As Int32
        Private mLucencyPercent As Int32 = 50
        Private mOutPath As String = ""
#End Region

'///设置水印在原图像中的位置
        Public Enum WaterImagePositionType
            LeftTop
            RightTop
            Center
            LeftBottom
            RightBottom
            Value
        End Enum

#Region "propertys"
        '/// <summary>
        '/// 获取或设置要修改的图像路径
        '/// </summary>
        Public Property ModifyImagePath() As String
            Get
                Return mModifyImagePath
            End Get
            Set(ByVal Value As String)
                mModifyImagePath = Value
            End Set
        End Property

'/// <summary>
        '/// 获取或设置在画的图片路径(水印图片)
        '/// </summary>
        Public Property WaterMarkImagePath() As String
            Get
                Return mWaterMarkImagePath
            End Get
            Set(ByVal Value As String)
                mWaterMarkImagePath = Value
            End Set
        End Property

'///设置水印在原图像中的位置
        Public Property WaterImagePosition() As WaterImagePositionType
            Get
                Return mWaterImagePosition
            End Get
            Set(ByVal Value As WaterImagePositionType)
                mWaterImagePosition = Value
            End Set
        End Property

'/// <summary>
        '/// 获取或设置水印在修改图片中的右边距
        '/// </summary>
        Public Property RightSpace() As Int32
            Get
                Return mRightSpace
            End Get
            Set(ByVal Value As Int32)
                mRightSpace = Value
            End Set
        End Property

'//获取或设置水印在修改图片中距底部的高度
        Public Property BottoamSpace() As Int32
            Get
                Return mBottoamSpace
            End Get
            Set(ByVal Value As Int32)
                mBottoamSpace = Value
            End Set
        End Property

'/// <summary>
        '/// 获取或设置要绘制水印的透明度,注意是原来图片透明度的百分比
        '/// </summary>
        Public Property LucencyPercent() As Int32
            Get
                Return mLucencyPercent
            End Get
            Set(ByVal Value As Int32)
                If Value >= 0 And Value <= 100 Then
                    mLucencyPercent = Value
                Else
                    mLucencyPercent = 50
                End If

End Set
        End Property

'/// <summary>
        '/// 获取或设置要输出图像的路径
        '/// </summary>
        Public Property OutPath() As String
            Get
                Return mOutPath
            End Get
            Set(ByVal Value As String)
                mOutPath = Value
            End Set
        End Property

#End Region

#Region "methods"
        '/// <summary>
        '/// 开始绘制水印/图片水印,可设置透明度等
        '/// </summary>
        Public Function DrawImage() As Boolean

Dim bolReturn As Boolean = True

Dim modifyImage As Image = Nothing
            Dim drawedImage As Image = Nothing
            Dim g As Graphics = Nothing
            Try
                '//建立图形对象
                modifyImage = Image.FromFile(Me.ModifyImagePath)
                drawedImage = Image.FromFile(Me.WaterMarkImagePath)
                g = Graphics.FromImage(modifyImage)
                '//获取要绘制图形坐标
                Dim x As Int32
                Dim y As Int32
                Select Case Me.WaterImagePosition
                    Case WaterImagePositionType.Center
                        x = (modifyImage.Width - drawedImage.Width) / 2
                        y = (modifyImage.Height - drawedImage.Height) / 2
                    Case WaterImagePositionType.LeftBottom
                        x = 0
                        y = modifyImage.Height - drawedImage.Height
                    Case WaterImagePositionType.LeftTop
                        x = 0
                        y = 0
                    Case WaterImagePositionType.RightBottom
                        x = modifyImage.Width - drawedImage.Width
                        y = modifyImage.Height - drawedImage.Height
                    Case WaterImagePositionType.RightTop
                        x = modifyImage.Width - drawedImage.Width
                        y = 0
                    Case WaterImagePositionType.Value
                        x = modifyImage.Width - Me.RightSpace
                        y = modifyImage.Height - Me.BottoamSpace
                    Case Else
                        x = 0
                        y = 0
                End Select
                If x < 0 Then
                    x = 0
                End If
                If y < 0 Then
                    y = 0
                End If
                '//设置颜色矩阵
                Dim colorMatrix As ColorMatrix = New ColorMatrix(New Single()() _
                   {New Single() {1, 0, 0, 0, 0}, _
                    New Single() {0, 1, 0, 0, 0}, _
                    New Single() {0, 0, 1, 0, 0}, _
                    New Single() {0, 0, 0, Convert.ToSingle(Me.LucencyPercent / 100.0F), 0}, _
                    New Single() {0, 0, 0, 0, 1}})

Dim imgAttr As ImageAttributes = New ImageAttributes
                imgAttr.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap)
                '//绘制阴影图像
                g.DrawImage(drawedImage, New Rectangle(x, y, drawedImage.Width, drawedImage.Height), 0, 0, drawedImage.Width, drawedImage.Height, GraphicsUnit.Pixel, imgAttr)
                '//保存文件
                Dim allowImageType As String() = {".jpg", ".gif", ".png", ".bmp", ".tiff", ".wmf", ".ico"}
                Dim file As FileInfo = New FileInfo(Me.ModifyImagePath)
                Dim imageType As ImageFormat = ImageFormat.Gif
                Select Case file.Extension.ToLower()
                    Case ".jpg"
                        imageType = ImageFormat.Jpeg
                    Case ".gif"
                        imageType = ImageFormat.Gif
                    Case ".png"
                        imageType = ImageFormat.Png
                    Case ".bmp"
                        imageType = ImageFormat.Bmp
                    Case ".tif"
                        imageType = ImageFormat.Tiff
                    Case ".wmf"
                        imageType = ImageFormat.Wmf
                    Case ".ico"
                        imageType = ImageFormat.Icon
                    Case Else
                        imageType = ImageFormat.Jpeg
                End Select
                Dim ms As MemoryStream = New MemoryStream()
                modifyImage.Save(ms, imageType)
                Dim imgData As Byte() = ms.ToArray()
                Dim fs As FileStream = Nothing

If Not Me.OutPath.Equals(String.Empty) Then
                    fs = New FileStream(Me.OutPath, FileMode.Create, FileAccess.Write)
                Else
                    fs = New FileStream(Me.ModifyImagePath, FileMode.Create, FileAccess.Write)
                End If
                If Not fs Is Nothing Then
                    fs.Write(imgData, 0, imgData.Length)
                    fs.Close()
                End If
            Catch ex As Exception
                bolReturn = False
            Finally

End Try
            Return bolReturn

End Function

'修改图片大小
        Public Function SizeChange(ByVal intWidth As Int32, ByVal intHeight As Int32) As Boolean
            Dim bolReturn As Boolean = True
            Try
                Dim modifyImage As Image = Image.FromFile(Me.ModifyImagePath)
                '//
                Dim imageOut As Image = modifyImage.GetThumbnailImage(intWidth, intHeight, Nothing, System.IntPtr.Zero)
                '//保存文件
                Dim allowImageType As String() = {".jpg", ".gif", ".png", ".bmp", ".tiff", ".wmf", ".ico"}
                Dim file As FileInfo = New FileInfo(Me.ModifyImagePath)
                Dim imageType As ImageFormat
                Select Case file.Extension.ToLower()
                    Case ".jpg"
                        imageType = ImageFormat.Jpeg
                    Case ".gif"
                        imageType = ImageFormat.Gif
                    Case ".png"
                        imageType = ImageFormat.Png
                    Case ".bmp"
                        imageType = ImageFormat.Bmp
                    Case ".tif"
                        imageType = ImageFormat.Tiff
                    Case ".wmf"
                        imageType = ImageFormat.Wmf
                    Case ".ico"
                        imageType = ImageFormat.Icon
                    Case Else
                        imageType = ImageFormat.Jpeg
                End Select
                imageOut.Save(OutPath, imageType)
            Catch ex As Exception
                bolReturn = False
            Finally

End Try
            Return bolReturn

End Function
#End Region

#Region "new"
        Public Sub New()
            ModifyImagePath = ""
            WaterMarkImagePath = ""
            RightSpace = 0
            BottoamSpace = 0
            LucencyPercent = 50
            OutPath = ""
            mWaterImagePosition = WaterImagePositionType.LeftTop
        End Sub

#End Region
    End Class

End Namespace

调用部分:

Imports System.IO
Imports System.Drawing

Partial Class PicTest2
    Inherits System.Web.UI.Page

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        '//thefile是个file field html 控件
        thefile.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath("BBS\SnkProductImages\1.jpg"))
        Dim memstream As System.IO.MemoryStream = New System.IO.MemoryStream()
        Dim imgoutput As System.Drawing.Image = System.Drawing.Bitmap.FromFile(System.Web.HttpContext.Current.Server.MapPath("BBS\SnkProductImages\1.jpg"))
        '//修改成80×80大小
        Dim imgoutput2 As System.Drawing.Image = imgoutput.GetThumbnailImage(80, 80, Nothing, System.IntPtr.Zero)
        imgoutput2.Save(System.Web.HttpContext.Current.Server.MapPath("BBS\SnkProductImages\2.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg)
        Response.Write(thefile.PostedFile.FileName)
        Response.Write("len:" + memstream.length.tostring())
        imgoutput.Dispose()
        imgoutput2.Dispose()
        Response.Write("上传成功!")
        Response.Write(System.Web.HttpContext.Current.Server.MapPath("BBS\SnkProductImages\2.jpg"))

'//加文字水印,注意,这里的代码和以下加图片水印的代码不能共存
        Dim g As Graphics = Graphics.FromImage(imgoutput)
        g.DrawImage(imgoutput, 0, 0, imgoutput.Width, imgoutput.Height)
        Dim f As Font = New Font("Verdana", 32)
        Dim b As Brush = New SolidBrush(Color.Red)
        Dim addText As String = "SNK Star"
        g.DrawString(addText, f, b, 10, 10)
        g.Dispose()

imgoutput.Save(System.Web.HttpContext.Current.Server.MapPath("BBS\SnkProductImages\3.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg)

End Sub

End Class

转载于:https://www.cnblogs.com/Carlwave/archive/2010/07/02/1770151.html

VS.net图片加水印的代码相关推荐

  1. 给图片加水印的代码java_Java为图片加水印的代码

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.awt.AlphaComposite; import java.a ...

  2. 小程序图片加水印实现代码,带效果图

    效果图: 本文有核心代码和完整代码,完整代码是上传用户的个人信息到云数据库,包括表单,图片上传,多图上传到云数据库. 实现核心代码 <view class="mg_bo"&g ...

  3. php 上传加水印图片格式,用PHP实现给上传的图片加水印的代码_PHP

    $uptypes=array('image/jpg','image/jpeg','image/pjpeg','image/gif');//上传图片文件类型列表 $wFile="a.jpg&q ...

  4. php给网页加水印_两种php给图片加水印的实现代码

    PHP最简单的加水印方法 $img = imagecreatefromjpeg($filename); $logo = imagecreatefromjpeg($filename); /*imagec ...

  5. Java图片水印生成器代码 - 批量给自己的网站图片加水印

    Java图片水印生成器代码 - 批量给自己的网站图片加水印 最近在做一款APP,App中的图片是自己一个个的画出来的,为了保证图片不被盗用和处理,所以就需要加上水印防盗.这跟CSDN一样. 注意事项: ...

  6. php加水印功能,PHP图片加水印功能

    本篇文章主要介绍PHP图片加水印功能,感兴趣的朋友参考下,希望对大家有所帮助. 实例代码如下:<?php /** * 功能:给一张图片加上水印效果 * $i 要加水印效果的图片 * $t 水印文 ...

  7. Java图片处理(二)图片加水印

    图片加水印,是通过图片重叠绘制实现的.实现代码如下: public static void press(String pressImg, String pressText, String target ...

  8. Python脚本实现图片加水印

    起步 图片是指由图形.图像等构成的平面媒体,有形式的事物,我们看到的,是图画.照片.拓片等的统称. 为了保护一些原创图片的版权,某些时候我们需要在图片上面,加上水印,当然你可以用Photoshop来做 ...

  9. java 水印 位置_Java实现图片加水印且控制位置和透明度

    Java实现图片加水印且控制位置和透明度 昨天要做一个给图片加水印的功能,不想使用一些插件,就在网上转了一会儿,经过改装成了我需要的功能,代码如下: package org.guhao; import ...

最新文章

  1. HTML事件的执行顺序
  2. web网站无法启动报错
  3. JAVA_OA(十四)番外:JAVAWEB防止表单重复提交的方法整合(包括集群部署)
  4. 系统协调服务器,协调网络系统 Collaboration network system
  5. Java实现二分查找法
  6. ASP.NET中登录后反复跳转回登录页面
  7. C语言练习——打印九九乘法表
  8. php嗅探链接,教你如何利用php来嗅探劫持服务器数据
  9. 测试开发大厂面试精选40题
  10. Java后台给PDF加水印并且合并多个PDF文件
  11. 正六面体染色(java)
  12. [车联网安全自学篇] ATTACK安全之交互式/非交互式Shell和登录式/非登录式Shell的检测
  13. html语言div怎么使用,什么是div标签?HTML中div标签怎么使用?
  14. 旋转编码器旋钮程序_让我们使用SwiftUI构建具有旋转手势的复古音频旋钮
  15. iOS中物理单位换算
  16. 家用双wan口路由器推荐_教你如何配置双WAN口路由器
  17. 大数据分析及挖掘技术
  18. ASO优化:如何提高App Store应用商店中排名?
  19. 万字详解数仓分层设计架构 ODS-DWD-DWS-ADS
  20. Vue-cli 微博注册登录系统

热门文章

  1. export、export default的使用
  2. 搞定Redis高级特性与性能调优
  3. Linux删除大文件后磁盘空间未释放问题
  4. Ubuntu 安装.bin文件
  5. 树脂基复合材料是什么?
  6. 集成融云直播UI的时候提示_matroska_decode_buffer in KSYMediaPlayer(matroskadec.o)
  7. 3-36串AFE芯片锂电池国产BMS模拟前端采集保护芯片
  8. 试想:有什么是5G手机能做,但今天的4G手机做不了的?
  9. Unity3D Shader官方教程翻译(三)
  10. Omi × 云开发『半天』搞定小程序 『markdown 内容发布系统』