
正文
图像vb.net 图像微信2022年最新
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
请问VB.net中如何保存BMP/jpg图像
我理解你
我写过图片网络传输的和你要求的一样
为了不把图片写到硬盘 又从硬盘读取
而直接保存图片内存流 进行网络传输
从网络读取的图片byte数组转成图片代码如下
Dim mStream As New IO.MemoryStream
mStream.Write(b, 0, b.length) '这里b就是你的一维数组了
Dim Img As New Bitmap(mStream)
mStream.Close()
mStream.Dispose()
下面是把图片保存到一维数组的方法
Dim Stream As New IO.MemoryStream
im.Save(Stream, System.Drawing.Imaging.ImageFormat.Jpeg)
im = Nothing
Stream.Flush()
Dim b As Byte() = Stream.ToArray
Stream.Dispose()
相关问答
Q1: 如何正确掌握VB.NET操作缩放图像
在VB.NET操作缩放图像中的显示和保存缩放图像,用到Image和Graphics类,在VSDotNet2K3下面Reference里自动添加了引用System.Drawing,直接用就行。
实现VB.NET操作缩放图像代码如下:DimimgAsImageImage=Image.FromFile
(D:\Image\tstImage.jpg)
''tstImage是原先的图片DimgrfxAsGraphics=Me
.CreateGraphics
grfx.DrawImage(img,0,0,img.Width*
3,img.Height*3)''在Form里显示
DimimgnewAsNewSystem.Drawing.Bitmap
(img,img.Height*3,img.Width*3)
''新建一个放大的图片
imgnew.Save(D:\Image\tstNewImage.jpg,
System.Drawing.Imaging.ImageFormat.Jpeg)
''保存放大后图片
你可以建一个Form,然后在Form里拖进一个Button,把上面的代码放在Button_Click事件里面源码天空
,执行就行了。
对上面VB.NET操作缩放图像代码的解释:
1.要获取Graphics对象只能从某一事件的参数中获取或者使用窗体和控件对象的CreateGraphics方法来获取-----上面代码使用Me.CreateGraphics来引用这个对象。
2.加载一个图片用Image类的FromFile或者FromStream方法
3.用DrawImage来显示一个图片,该方法有30多个重载方法,可以查MSDN了解细节。
4.保存时的一个问题:我们必须先建一个对象,用于存缩放图像。
Q2: Vb.net怎么实现图像的处理
这问题有点笼统图像vb.net,软糖来说说把:
图像处理由System.Drawing命名空间负责。
主要是Bitmap类和Graphics类。
Bitmap表示一个位图,可以是BMP,JPG,PNG等文件。
装载位图
Dim 位图 As Bitmap = Bitmap.FromFile("C:\Image1.PNG")
Graphics表示一张画纸,能够进行绘制操作。
它可以被窗体、控件、位图调用CreateGraphics()方法来创建。
然后调用Graphics.Draw开头图像vb.net的一系列函数来绘制图像和图形,Fill开头图像vb.net的填充图形。
创建画纸并绘制位图
Dim 画纸 As Graphics = Me.CreateGraphics()
画纸.DrawImage(位图, 100, 100, 256, 256)
可以将上面三行放到Form1_Load中测试,把路径改一下,
还可以把Me改为能在上面绘图图像vb.net的控件的名称。
更多内容请看MSDN的System.Drawing命名空间。
如满意,请采纳,谢谢。
Q3: VB.net 旋转图像时,如何指定填充色
绘制线条采用Draw开头的方法,颜色参数用Pen类;
绘制有填充色的封闭图形采用Fill开头的方法,颜色参数用Brush类;
例如:
'绘制一个实心圆,该圆在:直线x=200,y=200,x=200+100,y=200+100所划矩形区域内
Me.CreateGraphics.FillEllipse(New SolidBrush(Color.Orange), 200, 200, 100, 100)
'绘制一个空心圆,该圆在:直线x=200,y=200,x=200+100,y=200+100所划矩形区域内
Me.CreateGraphics.DrawEllipse(New Pen(Color.Black), 200, 200, 100, 100)
Q4: 在vb.net环境下图像处理,用什么建立3D
首先,还是谈谈图像像素时数据获取方面吧,.net中的图像相关类基本上都是基于GDI+的,因此,图像数据的获取其实也是调用GDI+的一些函数。这个函数就是LockBits,在vb.net中彩色图像数据的快速获取 一文中,我们是调用了Marshal.Copy把LockBits锁定的内存数据拷贝到数据中,然后对数组中的值进行处理。这样做主要的原因是VB.NET不好直接访问内存(Marshal.ReadByte之类的函数不适合用于大型的循环中)。那么,这就造成了2个不好的事情,第一:在同一时间需要2倍于图像数据量的内存,第二:内存数据拷贝到数据,以及处理后再把数组的数据拷贝会内存中都是会减低速度的。作为一种改进,我们应该充分利用LockBits的功能。LockBits中的LockMode中有一种模式为ImageLockMode.UserInputBuffer,该模式下需要用户先申请内存,然后在把图像数据按照相关格式填充如这个内存中。这样,就可以先定义个数组,然后把图像数据填充到这个数组中,就避免了来回拷贝的耗时了,简单示例代码如下:
Dim BmpData As New BitmapData
Stride = ((Bmp.Width * 3 + 3) And HFFFFFFFC)
Dim PixleValue(Stride * Bmp.Height) As Byte
Dim Hanlde As GCHandle = GCHandle.Alloc(PixleValue, GCHandleType.Pinned)
BmpData.Scan0 = Hanlde.AddrOfPinnedObject()
Q5: 关于VB.NET中图像二值化中的阀值法是什么意思呢
不要分
灰度图像的像素的取值范围为
0-255,0代表黑,255代表最亮,中间值是不同的亮度
图像二值化,就是通过某个判断标准,将灰度图像变成只有两个值的图像,即图像值不是0,就是255
阈值,就是这个判断标准,比如,如果阈值取100,那么图像灰度小于等于100的像素,都变成0
图像灰度大于100的,都变成255
关于图像vb.net和图像微信2022年最新的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






