| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1155 人关注过本帖
标题:VBS生成BMP位图无法准确的指定大小,如何修正?
取消只看楼主 加入收藏
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1933
专家分:3012
注 册:2009-12-22
结帖率:89.13%
收藏
 问题点数:0 回复次数:1 
VBS生成BMP位图无法准确的指定大小,如何修正?
' 图片宽度和高度
imgWidth = 100
imgHeight = 200

' 计算图像数据的大小
imgDataSize = imgWidth * imgHeight * 3

' 创建 BMP 文件头
bmpHeader = Chr(66) & Chr(77) & _
            Chr(imgDataSize And 255) & _
            Chr((imgDataSize \ 256) And 255) & _
            Chr(((imgDataSize \ 256) \ 256) And 255) & _
            Chr((((imgDataSize \ 256) \ 256) \ 256) And 255) & _
            Chr(0) & Chr(0) & Chr(0) & Chr(0) & _
            Chr(54) & Chr(0) & Chr(0) & Chr(0) & _
            Chr(40) & Chr(0) & Chr(0) & Chr(0) & _
            Chr(imgWidth And 255) & Chr((imgWidth \ 256) And 255) & _
            Chr(0) & Chr(0) & _
            Chr(imgHeight And 255) & Chr((imgHeight \ 256) And 255) & _
            Chr(0) & Chr(0) & _
            Chr(1) & Chr(0) & _
            Chr(24) & Chr(0) & _
            Chr(0) & Chr(0) & _
            Chr(0) & Chr(0) & _
            Chr(0) & Chr(0) & _
            Chr(0) & Chr(0) & _
            Chr(0) & Chr(0)

' 创建图像数据
' 这里仅是一个示例,将图像数据设置为彩虹
imageData = ""
For i = 1 To imgHeight
    For j = 1 To imgWidth
        ' BMP 中的像素数据是 BGR 格式
        imageData = imageData & Chr(i Mod 256) & Chr((i + j) Mod 256) & Chr(j Mod 256)
    Next
Next

' 将图像数据添加到 BMP 文件头后面
bmpData = bmpHeader & imageData

' 将 BMP 数据写入文件
Dim fs, outFile
Set fs = CreateObject("Scripting.FileSystemObject")
Set outFile = fs.CreateTextFile("output.bmp", True)
outFile.Write bmpData
outFile.Close
搜索更多相关主题的帖子: 图像 大小 And BMP 数据 
2023-12-22 10:37
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1933
专家分:3012
注 册:2009-12-22
收藏
得分:0 
以下是引用冬瓜汤在2023-12-22 12:09:01的发言:

VB、VBA、VBS简易的图像处理 Windows Image Acquisition (WIA) 的用法

二、裁剪滤镜:裁剪图片
Dim Img 'As ImageFile
Dim IP 'As ImageProcess
Set Img = CreateObject("WIA.ImageFile")
Set IP = CreateObject("WIA.ImageProcess")
Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp"
IP.Filters.Add IP.FilterInfos("Crop").FilterID
IP.Filters(1).Properties("Left") = Img.Width \ 4
IP.Filters(1).Properties("Top") = Img.Height \ 4
IP.Filters(1).Properties("Right") = Img.Width \ 4
IP.Filters(1).Properties("Bottom") = Img.Height \ 4
Set Img = IP.Apply(Img)
Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissCrop.bmp"

三、缩放滤镜:调整图像的大小
Dim Img 'As ImageFile
Dim IP 'As ImageProcess
Set Img = CreateObject("WIA.ImageFile")
Set IP = CreateObject("WIA.ImageProcess")
Img.LoadFile "C:\WINDOWS\Web\Wallpaper\Bliss.bmp"
IP.Filters.Add IP.FilterInfos("Scale").FilterID
IP.Filters(1).Properties("MaximumWidth") = 100
IP.Filters(1).Properties("MaximumHeight") = 100
Set Img = IP.Apply(Img)
Img.SaveFile "C:\WINDOWS\Web\Wallpaper\BlissThumb.bmp"


注:不太清楚 楼主的意图,只能简单地认为你是为了简易处理图像。



不是让你处理BMP图片,而是让你直接创建一个指定大小的BMP文件,从无到有。


心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2023-12-22 17:31
快速回复:VBS生成BMP位图无法准确的指定大小,如何修正?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017451 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved