vba把图片转成二进制_70多岁日本老人用Excel画画,我用VBA将图片转成标注图

看到这么美的画,

首先你会想到是用是什么画的?

256e69dafa04756b5d7605b3a329d666.png

f0bc78f82be49b0bac035131de212fc0.png

谁也不曾想到这些画居然是

一位名叫Tatsuo Horiuchi的75岁老人,

用excel表格画出来的!在Excel单元格里面插入各种形状和填充颜色进行组合起来。

b0fe94ea120140af631c0d60089eb5b7.png

老人为了修成这一门“绝技”

整整花了15年的时间!

用VBA画必然图

今天我们分享一个技巧,使用Excel的一段VBA代码,将图片画在Excel里面。

36b82e8ff71d0d9561ac677fa36a6ca2.png

所以我们找到一张jpg的图片,然后用看图软件,另存为图片,将格式更改成bmp,如下所示

d0e7fb1d0eac1ca0072692d5e5a5fc07.png

然后在开发工具里面,的模块里面输入代码

a27bdd32d09676e30e182f2d32327c29.png

将表格的行高和列宽调整成一样,然后在开发工具里面运行宏

338a7e4548aba0ca1bcca55adac75c62.gif

我们把单元格放大一点,就可以看到是一个一个的预定组成的图片

64ab94d0c1dbf7d5167300168552d0a0.png

Sub draw()

    Const photo As String = "d:\1.bmp"

    Dim phby() As Byte

    Dim pxc As Long, pxr As Long

    Dim cc As Long, cr As Long

    Dim i As Long, j As Long

    Dim aa As Long, bb As Long

    Open photo For Binary As #1

        ReDim phby(LOF(1) - 1)

        Get #1, , phby

    Close #1

    For i = 0 To 3

        pxc = pxc + phby(i + 18) * 256 ^ i

    Next

    For i = 0 To 3

        pxr = pxr + phby(i + 22) * 256 ^ i

    Next

    If pxc Mod 4 <> 0 Then bb = pxc Mod 4

    Cells.Clear

    For i = pxr To 1 Step -1

        cr = cr + 1

        cc = 0

        For j = 1 To pxc * 3 Step 3

            cc = cc + 1

            aa = 53 + j + (i - 1) * (pxc * 3 + bb)

            Cells(cr, cc).Interior.Color = RGB(phby(aa + 2), phby(aa + 1), phby(aa))

        Next

    Next

End Sub

小伙们可以用这段代码,在Excel里面拿自己的照片画个画哦,收藏备用吧〜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值