.net上传图片生成缩略图,加文字水印和图片水印_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > .net上传图片生成缩略图,加文字水印和图片水印

.net上传图片生成缩略图,加文字水印和图片水印

 2010/12/12 15:04:49  applechong  http://weizhigan.javaeye.com  我要评论(0)
  • 摘要:引用页的代码:Importsdll图片水印缩略图PartialClass_DefaultInheritsSystem.Web.UI.PagePrivateimageutileAsdell图片缩略图水印=Newdell图片缩略图水印ProtectedSubButton1_Click(ByValsenderAsObject,ByValeAsEventArgs)HandlesButton1.ClickDimimagehzAsString()={".jpg",".jpge",".png",".gif"
  • 标签:.net 图片 上传 net

引用页的代码:

?

Imports dll图片水印缩略图

Partial Class _Default
??? Inherits System.Web.UI.Page
??? Private imageutile As dell图片缩略图水印 = New dell图片缩略图水印
??? Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
??????? Dim imagehz As String() = {".jpg", ".jpge", ".png", ".gif", ".bmp"}
??????? '(ByVal Fup上传控件 As FileUpload, ByVal strimage As String(), ByVal image缩略图 As Image, ByVal lab错误提示
??????? 'str水印图片路径 As String, ByVal str图片保存路径 As String, ByVal str水印文字 As String, ByVal x水印坐标 As Integer, ByVal y水印坐标 As Integer, ByVal 缩略图高 As String, ByVal 缩略图宽 As String, ByVal 文字 As Boolean, ByVal 图片 As Boolean
??????? Me.imageutile.upimage图片上传设置水印(Me.FileUpload1, imagehz, Me.Image1, Me.Label1, "image/logo.jpg", "imagelocal", "weizhigan", 30, 30, 100, 150, True, False)
??? End Sub
End Class

附加库文件下载和测试工程下载

dll的代码在公司了,今天写完dll的代码后直接拷贝dll文件回来而已,代码没拷贝回来

如果对dll代码感兴趣的给我留言留下你的邮件我发给各位

早上忙,没能补dll的代码上来现在发布

Public Class dell图片缩略图水印

??? '
??? '
??? '上传图片缩略
??? Sub upimage图片上传设置水印(ByVal Fup上传控件 As FileUpload, ByVal strimage As String(), ByVal image缩略图

As Image, ByVal lab错误提示 As Label, ByVal str水印图片路径 As String, ByVal str图片保存路径 As String, ByVal str

水印文字 As String, ByVal x水印坐标 As Integer, ByVal y水印坐标 As Integer, ByVal 缩略图高 As String, ByVal 缩略图

宽 As String, ByVal 文字 As Boolean, ByVal 图片 As Boolean)
??????? Dim imagelocal = str图片保存路径 ' "~/imagelocal"
??????? Dim iname As String ' 文件保存名
??????? Dim flash是否继续 As Boolean = False
??????? If Not (Fup上传控件.PostedFile Is Nothing) Then '上传的图片不为空的时候进行一下操作
??????????? Dim namestr1 As String = (Fup上传控件.PostedFile.FileName) '获取上传的文件名


??????????? Dim j As Integer = namestr1.LastIndexOf(".")
??????????? Dim newname As String = namestr1.Substring(j) '图片得到后辍名

??????????? For k As Int32 = 0 To strimage.Length - 1 Step 1
??????????????? If newname = strimage(k) Then
??????????????????? flash是否继续 = True '
??????????????? End If
??????????? Next k


??????????? If flash是否继续 Then
??????????????? iname = CStr(Now.ToFileTimeUtc) '随机的文件名(不会重复)
??????????????? Dim newnames As String = iname + newname '重新组合文件名

??????????????? '是否保存原图?
??????????????? 'Fup上传控件.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath(imagelocal) + "/" +

newnames) '保存文件到文件夹

??????????????? Dim image, sImage, stimgs As System.Drawing.Image
??????????????? image = System.Drawing.Image.FromStream(Fup上传控件.PostedFile.InputStream) '得到原图
??????????????? Dim imagelocals As String = HttpRuntime.AppDomainAppPath
??????????????? Dim files As New System.IO.FileStream(imagelocals + "/" + str水印图片路径, IO.FileMode.Open,

IO.FileAccess.ReadWrite) '实例化FileStream类()
??????????????? stimgs = System.Drawing.Image.FromStream(files) '即将把获得的水印图流写入
??????????????? files.Close() '关闭流

??????????????? Dim width As Decimal = image.Width '得到原图的宽
??????????????? Dim height As Decimal = image.Height '得到原图的高

??????????????? Dim swidth As Decimal = stimgs.Width
??????????????? Dim sheight As Decimal = stimgs.Height

??????????????? Dim newwidth, newheight As Integer '定义缩略图的大小


??????????????? If 缩略图高 > 0 And 缩略图宽 > 0 Then
??????????????????? newwidth = 缩略图宽
??????????????????? newheight = 缩略图高

??????????????? Else
??????????????????? '计算缩略图的大小
??????????????????? If (width > height) Then
??????????????????????? newwidth = 150
??????????????????????? newheight = CInt(height / width * 150)
??????????????????? Else
??????????????????????? newheight = 150
??????????????????????? newwidth = CInt(width / height * 150)
??????????????????? End If

??????????????? End If


??????????????? sImage = image '.GetThumbnailImage(width, height, Nothing, IntPtr.Zero) '返回image的缩略图

??????????????? Dim output As Drawing.Bitmap = New Drawing.Bitmap(sImage) '设置缩略图为位图

??????????????? Dim g As Drawing.Graphics = Drawing.Graphics.FromImage(output) '即将用绘画类画出图片


??????????????? '设计文字水印的位置
??????????????? '如果没有设定文字水印坐标就进行默认位置
??????????????? Dim x As Integer = x水印坐标
??????????????? Dim y As Integer = y水印坐标
??????????????? Dim fonts As New Drawing.Font("Tw Cen MT", 18) '默认的水印字体和大小

??????????????? '给缩略图加上文字水印
??????????????? '如果设置了文字水印

??????????????? If 文字 Then
??????????????????? If str水印文字 = "" Then
??????????????????????? g.DrawString("顶佳技术中心", fonts, New Drawing.SolidBrush(Drawing.Color.Red), (width - x),

(height - y)) '给图片设置文字水印
??????????????????? Else
??????????????????????? g.DrawString(str水印文字, fonts, New Drawing.SolidBrush(Drawing.Color.Red), (width - x), (height -

y)) '给图片设置文字水印
??????????????????? End If
??????????????? End If

??????????????? '给缩略图加上图片水印
??????????????? '如果设置了图片水印
??????????????? If 图片 Then
??????????????????? If str水印图片路径 = "" Then
??????????????????????? g.DrawString("顶佳软件提醒你:图片未找到!", fonts, New Drawing.SolidBrush(Drawing.Color.Red),

(width - x), (height - y)) '给图片设置文字水印
??????????????????? Else
??????????????????????? g.DrawImage(stimgs, (width - swidth - x), (height - sheight - y)) '给图片设置图片水印
??????????????????? End If
??????????????? End If
??????????????? output.Save(System.Web.HttpContext.Current.Server.MapPath(imagelocal) + "/s_" + newnames,

System.Drawing.Imaging.ImageFormat.Jpeg)

??????????????? '保存缩略图到Simagelocal文件夹

??????????????? image缩略图.Height = newheight
??????????????? image缩略图.Width = newwidth
??????????????? image缩略图.Visible = True
??????????????? image缩略图.ImageUrl = "../" + imagelocal + "/s_" + newnames
??????????? Else
??????????????? lab错误提示.Text = "你要上传的图片不符合类型"

??????????? End If

??????? End If


??? End Sub


End Class

发表评论
用户名: 匿名