水印+微图图(转http://tb.blog.csdn.net/TrackBack.aspx?PostId=721170)
2007-11-02 19:55
507 查看
Imports System.IO
Imports System.Drawing
Imports System.web
Imports System.Web.SessionState
Imports System.Web.UI
Imports System
Public Class uploadimg
' filePath是客户文件的完全路径,savepath是保存在服务器的文件夹名,imgname是文件更名后的名字,包括后缀名,size是图片缩微的实际大小
'这是缩微图形成
Public Sub uploadSmallImg(ByVal filePath As String, ByVal savepath As String, ByVal ImgName As String, ByVal size As Int16)
Dim Img As System.Drawing.Image = System.Drawing.Image.FromFile(filePath)
Dim ImgOutput As Bitmap
Dim neww, newh As Integer '考虑压缩失真问题,按比例保存
If Img.Height <= Size And Img.Width <= Size Then '直接保存
neww = Img.Height
newh = Img.Width
ElseIf Img.Width > Img.Height Then '按照width的比例保存
neww = Size
newh = Size * Img.Height / Img.Width
Else '按照高度比例保存
newh = Size
neww = Size * Img.Width / Img.Height
End If
ImgOutput = New Bitmap(Img, neww, newh) '形成缩微图
Img.Dispose()
'图片上传到服务器文件
Call savetofolder(ImgOutput, savepath + "s" + ImgName.ToLower)
End Sub
'保存原图,没有添加别的东西
' filePath是文件的完全路径,savepath是保存在服务器的文件夹名,imgname是文件更名后的名字,包括后缀名
Public Sub uploadbigimg(ByVal filepath As String, ByVal savepath As String, ByVal imgname As String)
Dim imgoutput As Bitmap = New Bitmap(filepath)
'图片上传到服务器文件
Call savetofolder(imgoutput, savepath + imgname.ToLower)
End Sub
' 由时间形成的新的文件名称,包括了后缀名称,精确到毫秒的文件名称
' 因为jpg的图片最小,都考虑用jpg的格式
Public Function newfilename() As String
'精确到毫秒的文件名称,包括了后缀了, 以防上传文件同名
Dim nowtime As DateTime = DateTime.Now
Dim changefilename As String = nowtime.ToString("yyyyMMddHHmmss") + nowtime.Millisecond.ToString + ".jpg" '+ ImageExtensionName
Return (changefilename.ToString)
End Function
'添加图片水印字符,然后上传
' filePath是客户文件的完全路径,savepath是保存在服务器的文件夹名,imgname是文件更名后的名字,包括后缀名,addstr是要填加的水印内容
Public Sub addwatermark(ByVal filepath As String, ByVal savepath As String, ByVal imgname As String) ', ByVal addstr As String)
'转换为位图
Dim bmp As Bitmap = New Bitmap(filepath)
Dim g As Graphics = Graphics.FromImage(bmp)
Dim fontsize As Int16
Dim addstr As String
'考虑图的大小,定义水印字体的大小
If bmp.Width < 120 Or bmp.Height < 120 Then
fontsize = 10
addstr = "--Cyt--" '图片太小添加--Cyt--
Else : fontsize = 20
addstr = "www.Caiyt.com" '图片比较大时添加www.Caiyt.com
End If
'定义画笔和字体
Dim f As Font = New Font("Arial Black", fontsize, FontStyle.Italic)
Dim b As Brush = New SolidBrush(Color.FromArgb(198, Color.Black)) '透明度100%
'添加水印,取中间值添加
g.DrawString(addstr, f, b, bmp.Width / 2, bmp.Height / 2)
'保存添加了水印的图片,选择保存格式
Call savetofolder(bmp, savepath + imgname.ToLower)
g.Dispose()
End Sub
'添加水印图片,上传
Public Sub addwatermarkimg(ByVal filepath As String, ByVal savepath As String, ByVal imgname As String, ByVal watermarkpath As String)
Dim bmp As Bitmap = New Bitmap(filepath)
Dim g As Graphics = Graphics.FromImage(bmp)
'考虑图的大小,定义水印字体的大小
If bmp.Width < 120 Or bmp.Height < 120 Then
Dim fontsize As Int16
Dim addstr As String
fontsize = 10
addstr = "--Cyt--" '图片太小添加--Cyt--,不添加图片
Dim f As Font = New Font("Arial Black", fontsize, FontStyle.Italic)
Dim b As Brush = New SolidBrush(Color.FromArgb(198, Color.Silver)) '透明度100%
'添加水印,取中间值添加
g.DrawString(addstr, f, b, bmp.Width / 2, bmp.Height / 2)
'图片比较大时添加图片
Else
Dim markimg As Bitmap = New Bitmap(watermarkpath)
'Rectangle(X,Y,width,height)
'放在图片的左上角
g.DrawImage(markimg, New Rectangle(10, 10, markimg.Width, markimg.Height), 0, 0, markimg.Width, markimg.Height, GraphicsUnit.Pixel)
End If
'定义画笔和字体
'保存添加了水印的图片,选择保存格式
Call savetofolder(bmp, savepath + imgname.ToLower)
g.Dispose()
End Sub
Public Sub savetofolder(ByVal bmp As Bitmap, ByVal path As String)
'按照给定的路径保存,统一按照jpg的格式保存
'必须要求有上载的文件的格式,要不然不知道服务器是什么
bmp.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg)
bmp.Dispose()
End Sub
End Class
Imports System.Drawing
Imports System.web
Imports System.Web.SessionState
Imports System.Web.UI
Imports System
Public Class uploadimg
' filePath是客户文件的完全路径,savepath是保存在服务器的文件夹名,imgname是文件更名后的名字,包括后缀名,size是图片缩微的实际大小
'这是缩微图形成
Public Sub uploadSmallImg(ByVal filePath As String, ByVal savepath As String, ByVal ImgName As String, ByVal size As Int16)
Dim Img As System.Drawing.Image = System.Drawing.Image.FromFile(filePath)
Dim ImgOutput As Bitmap
Dim neww, newh As Integer '考虑压缩失真问题,按比例保存
If Img.Height <= Size And Img.Width <= Size Then '直接保存
neww = Img.Height
newh = Img.Width
ElseIf Img.Width > Img.Height Then '按照width的比例保存
neww = Size
newh = Size * Img.Height / Img.Width
Else '按照高度比例保存
newh = Size
neww = Size * Img.Width / Img.Height
End If
ImgOutput = New Bitmap(Img, neww, newh) '形成缩微图
Img.Dispose()
'图片上传到服务器文件
Call savetofolder(ImgOutput, savepath + "s" + ImgName.ToLower)
End Sub
'保存原图,没有添加别的东西
' filePath是文件的完全路径,savepath是保存在服务器的文件夹名,imgname是文件更名后的名字,包括后缀名
Public Sub uploadbigimg(ByVal filepath As String, ByVal savepath As String, ByVal imgname As String)
Dim imgoutput As Bitmap = New Bitmap(filepath)
'图片上传到服务器文件
Call savetofolder(imgoutput, savepath + imgname.ToLower)
End Sub
' 由时间形成的新的文件名称,包括了后缀名称,精确到毫秒的文件名称
' 因为jpg的图片最小,都考虑用jpg的格式
Public Function newfilename() As String
'精确到毫秒的文件名称,包括了后缀了, 以防上传文件同名
Dim nowtime As DateTime = DateTime.Now
Dim changefilename As String = nowtime.ToString("yyyyMMddHHmmss") + nowtime.Millisecond.ToString + ".jpg" '+ ImageExtensionName
Return (changefilename.ToString)
End Function
'添加图片水印字符,然后上传
' filePath是客户文件的完全路径,savepath是保存在服务器的文件夹名,imgname是文件更名后的名字,包括后缀名,addstr是要填加的水印内容
Public Sub addwatermark(ByVal filepath As String, ByVal savepath As String, ByVal imgname As String) ', ByVal addstr As String)
'转换为位图
Dim bmp As Bitmap = New Bitmap(filepath)
Dim g As Graphics = Graphics.FromImage(bmp)
Dim fontsize As Int16
Dim addstr As String
'考虑图的大小,定义水印字体的大小
If bmp.Width < 120 Or bmp.Height < 120 Then
fontsize = 10
addstr = "--Cyt--" '图片太小添加--Cyt--
Else : fontsize = 20
addstr = "www.Caiyt.com" '图片比较大时添加www.Caiyt.com
End If
'定义画笔和字体
Dim f As Font = New Font("Arial Black", fontsize, FontStyle.Italic)
Dim b As Brush = New SolidBrush(Color.FromArgb(198, Color.Black)) '透明度100%
'添加水印,取中间值添加
g.DrawString(addstr, f, b, bmp.Width / 2, bmp.Height / 2)
'保存添加了水印的图片,选择保存格式
Call savetofolder(bmp, savepath + imgname.ToLower)
g.Dispose()
End Sub
'添加水印图片,上传
Public Sub addwatermarkimg(ByVal filepath As String, ByVal savepath As String, ByVal imgname As String, ByVal watermarkpath As String)
Dim bmp As Bitmap = New Bitmap(filepath)
Dim g As Graphics = Graphics.FromImage(bmp)
'考虑图的大小,定义水印字体的大小
If bmp.Width < 120 Or bmp.Height < 120 Then
Dim fontsize As Int16
Dim addstr As String
fontsize = 10
addstr = "--Cyt--" '图片太小添加--Cyt--,不添加图片
Dim f As Font = New Font("Arial Black", fontsize, FontStyle.Italic)
Dim b As Brush = New SolidBrush(Color.FromArgb(198, Color.Silver)) '透明度100%
'添加水印,取中间值添加
g.DrawString(addstr, f, b, bmp.Width / 2, bmp.Height / 2)
'图片比较大时添加图片
Else
Dim markimg As Bitmap = New Bitmap(watermarkpath)
'Rectangle(X,Y,width,height)
'放在图片的左上角
g.DrawImage(markimg, New Rectangle(10, 10, markimg.Width, markimg.Height), 0, 0, markimg.Width, markimg.Height, GraphicsUnit.Pixel)
End If
'定义画笔和字体
'保存添加了水印的图片,选择保存格式
Call savetofolder(bmp, savepath + imgname.ToLower)
g.Dispose()
End Sub
Public Sub savetofolder(ByVal bmp As Bitmap, ByVal path As String)
'按照给定的路径保存,统一按照jpg的格式保存
'必须要求有上载的文件的格式,要不然不知道服务器是什么
bmp.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg)
bmp.Dispose()
End Sub
End Class
相关文章推荐
- CSharp Tips:应用程序访问集成Windows认证的站点 (Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=11652)
- http://tb.blog.csdn.net/TrackBack.aspx?PostId=554408
- Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1763153
- http://tb.blog.csdn.net/TrackBack.aspx?PostId=1571046
- http://tb.blog.csdn.net/TrackBack.aspx?PostId=1528237
- http://writeblog.csdn.net/PostList.aspx
- 命令行下管理本机或远程主机服务的工具 - SC命令简介(转http://blog.csdn.net/happywqw/archive/2005/10/26/517156.aspx)
- c#读取并修改App.config文件实例(转载:http://blog.csdn.net/abuhome/archive/2010/01/13/5184467.aspx)
- eclipse_plugin(http://blog.csdn.net/chrython/archive/2006/10/29/1355453.aspx)
- 资料(http://blog.csdn.net/bogues/archive/2005/11/22/534982.aspx)
- c/c++编译器的内存分配模式 zz: http://blog.csdn.net/gukesdo/archive/2011/06/16/6548256.aspx
- 动态连接库入门(转载自光头的学习文档http://blog.csdn.net/yuguanglou/archive/2004/11/10/175879.aspx)
- http://write.bloghttp://write.blog.csdn.net/postlist.csdn.net/postlist
- http://blog.csdn.net/ezerg/archive/2004/10/24/149278.aspx
- WinCE中nandflash驱动开发介绍(转自http://blog.csdn.net/nanjianhui/archive/2008/03/16/2187206.aspx)
- MVC详解:了解真正所谓的"框架"(http://vipnews.csdn.net/newscontent.aspx?pointid=2009_02_01_144216610)
- http://blog.csdn.net/wemedia/details.html?id=40237
- 解决silverlight无法卸载的方法 http://write.blog.csdn.net/postlist
- http://m.blog.csdn.net/article/details?id=2630620
- http://m.blog.csdn.net/article/details?id=49132747