• 图像马赛克的实现


    [参考文档]:

    http://dongtingyueh.blog.163.com/blog/static/461945320127217563098/
    http://www.cnblogs.com/sndnnlfhvk/archive/2012/03/27/2419801.html

    [算法说明]:

    图像马赛克效果其实就是将图像分成大小一致的图像块,每一个图像块都是一个正方形,并且在这个正方形中所有像素值都相等。我们可以将这个正方形看作是一个模板窗口,模板中对应的所有图像像素值都等于该模板的左上角第一个像素的像素值,这样的效果就是马赛克效果,而正方形模板的大小则决定了马赛克块的大小,即图像马赛克化的程度。

    [实现代码]:

    Function Mosaic(imgpath, savepath)
    On Error Resume Next
        Dim ImgFile
        Dim ImgProcess
        Dim ARGBData
        
        Set ImgFile = CreateObject("WIA.ImageFile")
        Set ImgProcess = CreateObject("WIA.ImageProcess")
        
        Call ImgFile.LoadFile(imgpath)
        Set ARGBData = ImgFile.ARGBData
        
        Width = ImgFile.Width
        Height = ImgFile.Height
        'here's the MOSAIC Processing, and default mosaic-matrix N is 4x4
        N = 4
        
        For y = 1 To Height
            For x = 1 To Width
            Position = (y-1)*Width + x
                If y Mod N = 1 Then
                    If x Mod N = 1 Then
                        Color = ARGBData(Position)
                    Else
                        ARGBData(Position) = Color
                    End If
                Else
                    ARGBData(Position) = ARGBData(Position - Width)
                End If
            Next
        Next
        
        Call ImgProcess.Filters.Add(ImgProcess.FilterInfos("ARGB").FilterID)
        Set ImgProcess.Filters(1).Properties("ARGBData") = ARGBData
        Set ImgFile = ImgProcess.Apply(ImgFile)
        
        Call ImgFile.SaveFile(savepath)
    Mosaic = Err.Number
    End Function
    
    imgpath = "D:2.jpg"
    savepath = "D:2_mosaiced.jpg"
    Call Mosaic(imgpath, savepath)
    Wscript.Echo "Mosaic Done"

    PS: VBS+WIA实现的图片马赛克工具

    [效果展示]:

       

  • 相关阅读:
    Web自动化测试实践分享
    网络和安全
    关于pip
    ES6 Generator 函数
    Vue3+ element UI 解决日期时间格式话问题
    EBUSY: resource busy or locked, rmdir
    BC42025:通过实例访问共享成员、常量成员、枚举成员或嵌套类型;将不计算限定表达式
    Invoke 翻译 援调, 请调
    SSM Spring_SpringMVC_MyBatis
    Mybatisi和Spring整合源码分析
  • 原文地址:https://www.cnblogs.com/lichmama/p/4600946.html
Copyright © 2020-2023  润新知