| 网站首页 | 资讯 | 影音 | 图片 | 论坛 | 模拟驾考 | 免费取名算命 | 瓷都工具 | 留言本 | 域名 | 瓷都商城 | 汇款 | 
|
资讯首页
|
瓷都德化
|
站内新闻
|
影视剧情
|
汽车世界
|
网络文摘
|
周易八卦
|
教程技巧
|
房产信息
|
您现在的位置: 瓷都热线|诚信中国:“一就是一”(1941.CN) >> 资讯 >> 教程技巧0 >> 网络编程 >> 正文 登录 注册
专 题 栏 目
  • 四川汶川8.0级强震
  • 机动车驾驶员考试资料
  • 高考试题及答案
  • 最 新 热 门
     德化又添3个地理标志证明
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化:造莲花美景
     [图文]德化:编织小网格
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     德化白瓷艺术展亮相深圳
     [组图]“世界瓷都·润养
     德化:前妻婚内举债近8万
    最 新 推 荐
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     [组图]德化各种花卉相继
     [组图]福建德化九仙山迎
     [图文]德化石牛山惊现双
     [组图]千年古瓷都德化的
     [组图]警方连捣5传销窝点
     [组图]福建民俗博物馆办
    相 关 文 章
    如何制作无状态的ASP组件
    GB与BIG5内码转换COM原代
    一个用组件动态创建Exce
    利用OWC服务器端组件动态
    利用WinWebMail组件在AS
    用webeasymail组件发送邮
    Asp组件中级入门与精通系
    Asp组件中级入门与精通系
    Asp组件初级入门与精通
    使用组件封装数据库操作
    [组图]Asp组件高级入门与精通系列         ★★★
    Asp组件高级入门与精通系列
    作者:龙卷风.NET 文章来源:csdn.net 更新时间:2006-4-22 23:14:37
    【声明:转载此信息在于传递更多信息,其内容表达的观点并不代表本站立场,由这些信息所产生的一切后果本站不负任何责任。如果您对本信息有什么意见,欢迎和本站联系,谢谢!】http://CiDu.Net


    工程名flysoft   类模块image.cls
    Option Explicit
    ’*****************************************************
    ’CSDN VB版 online(龙卷风3.0 笑傲江湖)
    ’2005-6-30日修改部分代码
    ’名称:缩略水印组件
    ’时间:2005-02-11
    ’功能:增加了文字水印功能
    ’时间:2005-02-12
    ’功能:增加了图片水印功能
    ’时间:2005-02-13
    ’增加了对jpg,gif图像导入
    ’*****************************************************
    ’定义输入文件名
    Private SourceFileName As String
    ’定义缩放率
    Private iRate As Single
    ’定义文字水印输出字符串
    Private sMaskText As String * 256
    ’定义文字字体
    Private sMaskTextFontName As String
    ’定义文本倾斜度
    Private iMarkRotate As Single
    ’需要贴的水印的图片
    Private MaskFileName As String
    ’装载水印图片
    Public Property Get LoadFromMaskImgFile() As Variant
    LoadFromMaskImgFile = MaskFileName
    End Property
    Public Property Let LoadFromMaskImgFile(ByVal vNewValue As Variant)
    MaskFileName = vNewValue
    End Property
    ’设置水印文本旋转度
    ’设置写入属性
    Public Property Let MarkRotate(ByVal vNewValue As Variant)
    If vNewValue = "" Then
        iMarkRotate = 0
    Else
        iMarkRotate = vNewValue * 10
    End If
    End Property
    ’设置水印字体名称
    ’设置写入属性
    Public Property Let MaskTextFontName(ByVal vNewValue As Variant)
    sMaskTextFontName = vNewValue
    End Property
    ’定义属性,得到输入的水印文字
    ’设置写入属性
    Public Property Let MaskText(ByVal vNewValue As Variant)
    If vNewValue = "" Then
        sMaskText = "龙卷风制作"
    Else
        sMaskText = vNewValue
    End If
    End Property
    Public Property Let LoadFromFile(ByVal vNewValue As Variant)
    SourceFileName = vNewValue
    End Property
    Public Property Let Rate(ByVal vNewValue As Variant)
    iRate = vNewValue
    End Property
    ’输出缩略图
    Public Sub OutputImgFile(ByVal filename As String)
    Dim picture1 As New StdPicture
    ’判断文件是否存在,不存在抛出错误
    If Dir(SourceFileName) <> "" Then
        Set picture1 = LoadPicture(SourceFileName)
    Else
        Err.Raise vbObjectError + 513, , Err.Description + "装载文件时发生了错误,请检查"
        Exit Sub
    End If

    Dim vh As Long
    Dim vw As Long
    Dim bm As Bitmap
    GetObject picture1.handle, Len(bm), bm
    vw = bm.bmWidth
    vh = bm.bmHeight

    ’创建一个内存设备场景
    Dim hdcSrc As Long
    Dim hdcDest As Long
    hdcSrc = CreateCompatibleDC(0)
    hdcDest = CreateCompatibleDC(0)
    ’将创建的位图选入设备场景
    SelectObject hdcSrc, picture1.handle
    ’按照指定大小创建一幅与设备有关位图
    Dim hmD As Long
    hmD = CreateCompatibleBitmap(hdcSrc, vw * iRate, vh * iRate)
    SelectObject hdcDest, hmD
    ’处理伸缩模式
    Dim lOrigMode As Long
    Dim lRet As Long
    lOrigMode = SetStretchBltMode(hdcDest, STRETCH_HALFTONE)
    ’按照比例缩放
    StretchBlt hdcDest, 0, 0, vw * iRate, vh * iRate, hdcSrc, 0, 0, vw, vh, SRCCOPY
    ’恢复以前的设置
    lRet = SetStretchBltMode(hdcDest, lOrigMode)
    ’生成jpeg文件
    SaveJPG hmD, filename
                
    ’删除设备场景
    DeleteDC hdcSrc
    DeleteDC hdcDest
    ’删除位图对象
    DeleteObject hmD
    End Sub
    ’文字水印
    Public Sub OutputTxtImgFile(ByVal filename As String, ByVal iColor As String, Optional ByVal iWidth As Single = 20, Optional ByVal iHeight As Single = 50, Optional ByVal iLeft As Single = 10, Optional ByVal iTop As Single = 100)
    Dim picture1 As New StdPicture
    ’判断文件是否存在,不存在抛出错误
    If Dir(SourceFileName) <> "" Then
        Set picture1 = LoadPicture(SourceFileName)
    Else
        Err.Raise vbObjectError + 513, , Err.Description + "装载文件时发生了错误,请检查"
        Exit Sub
    End If
    Dim vh As Long
    Dim vw As Long
    Dim bm As Bitmap
    GetObject picture1.handle, Len(bm), bm
    vw = bm.bmWidth
    vh = bm.bmHeight
    ’’创建一个与内存设备场景
    Dim hdcSrc As Long
    Dim hdcDest As Long
    hdcSrc = CreateCompatibleDC(0)
    hdcDest = CreateCompatibleDC(0)
    ’将创建的位图选入设备场景
    SelectObject hdcSrc, picture1.handle
    Dim lf As LOGFONT
    Dim hFont As Long
    Dim nn As Long

    lf.lfHeight = iHeight            ’字符高度
    lf.lfWidth = iWidth             ’字符宽度
    lf.lfEscapement = iMarkRotate         ’文本倾斜度,逆时针方向为正,一圈总角度为3600
    lf.lfOrientation = 0        ’字符倾斜角度
    lf.lfWeight = 0           ’字体的轻重
    lf.lfUnderline = 0          ’是否加下划线
    lf.lfStrikeOut = 0          ’是否加删除线
    lf.lfCharSet = 1            ’指定字符集
    lf.lfOutPrecision = 0       ’输出、输入精度
    lf.lfClipPrecision = 0      ’剪辑精度
    lf.lfQuality = 0            ’设置输出质量
    lf.lfPitchAndFamily = 0     ’字间距
    lf.lfFaceName = sMaskTextFontName + Chr(0) ’字体名称
        
    ’创建逻辑字体
    hFont = CreateFontIndirect(lf)
    SetBkMode hdcSrc, TRANSPARENT
    nn = SelectObject(hdcSrc, hFont)
    ’输出
    ’设置文本前景色
    SetTextColor hdcSrc, iColor
    TextOut hdcSrc, iLeft, iTop, sMaskText, Len(sMaskText) * 2
    ’按照指定大小创建一幅与设备有关位图
    Dim hmD As Long
    hmD = CreateCompatibleBitmap(hdcSrc, vw * iRate, vh * iRate)
    SelectObject hdcDest, hmD

    ’处理伸缩模式
    Dim lOrigMode As Long
    Dim lRet As Long
    lOrigMode = SetStretchBltMode(hdcDest, STRETCH_HALFTONE)
    ’按照比例缩放
    StretchBlt hdcDest, 0, 0, vw * iRate, vh * iRate, hdcSrc, 0, 0, vw, vh, SRCCOPY
    ’恢复以前的设置
    lRet = SetStretchBltMode(hdcDest, lOrigMode)
    ’生成jpeg文件
    SaveJPG hmD, filename
    ’删除设备场景
    DeleteDC hdcDest
    DeleteDC hdcSrc
    ’删除位图对象
    DeleteObject nn
    DeleteObject hFont
    DeleteObject hmD
    End Sub
    ’图片水印
    Public Sub OutputMarkImgFile(ByVal filename As String, Optional ByVal iLeft As Single = 10, Optional ByVal iTop As Single = 100, Optional Alpha As Single = 70)
    Dim picture1 As New StdPicture
    Dim picture2 As New StdPicture
    ’判断文件是否存在,不存在抛出错误
    If Dir(SourceFileName) <> "" Then
        Set picture1 = LoadPicture(SourceFileName)
    Else
        Err.Raise vbObjectError + 513, , Err.Description + "装载文件时发生了错误,请检查"
        Exit Sub
    End If
    If Dir(MaskFileName) <> "" Then
        Set picture2 = LoadPicture(MaskFileName)
    Else
        Err.Raise vbObjectError + 514, , Err.Description + "装载水印图片文件时发生了错误,请检查"
        Exit Sub
    End If

    Dim vh As Long
    Dim vw As Long
    Dim bm As Bitmap
    GetObject picture1.handle, Len(bm), bm
    vw = bm.bmWidth
    vh = bm.bmHeight
    Dim vhmark As Long
    Dim vwmark As Long
    Dim bmm As Bitmap
    GetObject picture2.handle, Len(bmm), bmm
    vwmark = bmm.bmWidth
    vhmark = bmm.bmHeight

    ’创建一个内存设备场景
    Dim hdcSrc As Long
    Dim hdcSrcMark As Long
    Dim hdcDest As Long
    hdcSrc = CreateCompatibleDC(0)
    hdcSrcMark = CreateCompatibleDC(0)
    hdcDest = CreateCompatibleDC(0)
    ’将创建的位图选入设备场景
    SelectObject hdcSrc, picture1.handle
    SelectObject hdcSrcMark, picture2.handle
    SetBkMode hdcSrc, TRANSPARENT
    Dim lBlend As Long
    Dim bf As BLENDFUNCTION
    bf.BlendOp = AC_SRC_OVER
    bf.BlendFlags = 0
    bf.SourceConstantAlpha = Alpha
    bf.AlphaFormat = 0
    CopyMemory lBlend, bf, 4
    AlphaBlend hdcSrc, iLeft, iTop, vwmark, vhmark, hdcSrcMark, 0, 0, vwmark, vhmark, lBlend
          
    ’按照指定大小创建一幅与设备有关位图
    Dim hmD As Long
    hmD = CreateCompatibleBitmap(hdcSrc, vw * iRate, vh * iRate)
    SelectObject hdcDest, hmD

    ’处理伸缩模式
    Dim lOrigMode As Long
    Dim lRet As Long
    lOrigMode = SetStretchBltMode(hdcDest, STRETCH_HALFTONE)
    ’按照比例缩放
    StretchBlt hdcDest, 0, 0, vw * iRate, vh * iRate, hdcSrc, 0, 0, vw, vh, SRCCOPY
    ’恢复以前的设置
    lRet = SetStretchBltMode(hdcDest, lOrigMode)
    ’生成jpeg文件
    SaveJPG hmD, filename
    ’删除设备场景
    DeleteDC hdcDest
    DeleteDC hdcSrcMark
    DeleteDC hdcSrc
    ’删除位图对象
    DeleteObject hmD
    End Sub

    编译成flysoft.dll即可

    上一页  [1] [2] [3] [4] 下一页


    声明:以上信息资料大都是网上搜集而来,版权归作者,如有版权问题请留言告知我将马上改正。
    文中所提到的各种观点只是原文观点,各种说法未经一一确认。并不代表本站认可此观点!!
    资讯录入:admin    责任编辑:admin 
  • 上一篇资讯:

  • 下一篇资讯:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    点击数:1580
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论