Vb.net怎么实现图像的处理这问题有点笼统,软糖来说说把:
图像处理由System.Drawing命名空间负责 。
主要是Bitmap类和Graphics类 。
Bitmap表示一个位图,可以是BMP,JPG,PNG等文件 。
装载位图
Dim 位图 As Bitmap = Bitmap.FromFile("C:\Image1.PNG")
Graphics表示一张画纸,能够进行绘制操作 。
它可以被窗体、控件、位图调用CreateGraphics()方法来创建 。
然后调用Graphics.Draw开头的一系列函数来绘制图像和图形,Fill开头的填充图形 。
创建画纸并绘制位图
Dim 画纸 As Graphics = Me.CreateGraphics()
画纸.DrawImage(位图, 100, 100, 256, 256)
可以将上面三行放到Form1_Load中测试,把路径改一下 ,
还可以把Me改为能在上面绘图的控件的名称 。
更多内容请看MSDN的System.Drawing命名空间 。
如满意,请采纳,谢谢 。
VB.net中的图片问题void CGridImageDlg::OnSave()
{
try
{
pRecordset.CreateInstance("ADODB.Recordset");
pRecordset-Open("SELECT * FROM 基本信息图片",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
catch(_com_error e)///捕捉异常
{
AfxMessageBox("读取数据库失败!");///显示错误信息
}
//删除所有记录
while (!pRecordset-adoEOF)
{
pRecordset-Delete(adAffectCurrent);///删除当前记录
pRecordset-MoveNext();
}
int m_Rcount = 1;
while (m_Rcountm_GridCtrl.GetRowCount())
{
pRecordset-AddNew();
if(m_GridCtrl.GetItemText(m_Rcount,0)!="")
pRecordset-Fields-GetItem(_variant_t("图片编号"))-Value=https://www.04ip.com/post/_bstr_t(m_GridCtrl.GetItemText(m_Rcount,0));
if(m_GridCtrl.GetItemText(m_Rcount,1)!="")
pRecordset-Fields-GetItem(_variant_t("桥梁编号"))-Value=https://www.04ip.com/post/_bstr_t(m_GridCtrl.GetItemText(m_Rcount,1));
//获得文件名
CString m_sname;
m_sname.Format("%s",m_GridCtrl.GetItemText(m_Rcount,2));
//获取扩展名
CString m_sExt;
m_sExt.Format("%s%s",_T("."),m_GridCtrl.GetItemText(m_Rcount,4));
//获得主程序vb.net图片类的路径
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH 1),MAX_PATH);
sPath.ReleaseBuffer ();
int nPos;
nPos=sPath.ReverseFind ('\\');
sPath=sPath.Left (nPos);
//获取图片数据
CFile f;
CStringFilePathName;
FilePathName.Format("%s%s%s%s",sPath,_T("\\临时图片\\"),m_sname,m_sExt); //文件名和后缀名
CFileException e;
if(f.Open(FilePathName, CFile::modeRead | CFile::typeBinary, e)) //打开vb.net图片类了一个文件
{
int nSize = f.GetLength();//先得到文件长度
BYTE * pBuffer = new BYTE [nSize];//按文件vb.net图片类的大小在堆上申请一块内存
if (f.Read(pBuffer, nSize)0 )//把文件读到pBuffer(堆上申请一块内存)
{//----------------------------------------------
BYTE *pBuf = pBuffer;///下面这一大段是把pBuffer里vb.net图片类的数据放到库中
VARIANTvarBLOB;
SAFEARRAY*psa;
SAFEARRAYBOUND rgsabound[1];
if(pBuf)
{
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = nSize;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i(long)nSize; i)
SafeArrayPutElement (psa, i, pBuf);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
pRecordset-GetFields()-GetItem("图片数据")-AppendChunk(varBLOB);
}
delete [] pBuffer;//删掉堆上申请的那一块内存
pBuf=0;//以防二次乱用
f.Close();
}
}
if(m_GridCtrl.GetItemText(m_Rcount,3)!="")
pRecordset-Fields-GetItem(_variant_t("图片类别名称"))-Value=https://www.04ip.com/post/_bstr_t(m_GridCtrl.GetItemText(m_Rcount,3));
if(m_GridCtrl.GetItemText(m_Rcount,4)!="")
pRecordset-Fields-GetItem(_variant_t("图片后缀"))-Value=https://www.04ip.com/post/_bstr_t(m_GridCtrl.GetItemText(m_Rcount,4));
if(m_GridCtrl.GetItemText(m_Rcount,5)!="")
pRecordset-Fields-GetItem(_variant_t("拍摄日期"))-Value=https://www.04ip.com/post/_bstr_t(m_GridCtrl.GetItemText(m_Rcount,5));
if(m_GridCtrl.GetItemText(m_Rcount,6)!="")
pRecordset-Fields-GetItem(_variant_t("图片描述"))-Value=https://www.04ip.com/post/_bstr_t(m_GridCtrl.GetItemText(m_Rcount,6));
m_Rcount;
pRecordset-Update();
}
}
如何正确掌握VB.NET操作缩放图像【vb.net图片类 vb编程图片】在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.保存时的一个问题:我们必须先建一个对象,用于存缩放图像 。
为什么VB.NET的控制台程序没有Image类?要给项目添加引用:System.Drawing.dll才能使用Image类 。不过,它是一个抽象类 , 只能使用它的子类 。
vb.net中怎么判断图片的类型1-有扩展名,依据扩展名判断(这个简单)
2-没有扩展名,比如给你个图片文件image,文件没有扩展名,可以通过以下方式进行判断,但同时如果确定是图片且系统支持的类型 , 则无需关心文件类型,直接读取到Image就可以 , 系统也是依据以下的方式判断
1.JPEG【判断文件开始2字节与结束2字节】
- 文件头标识 (2 bytes): $ff, $d8 (SOI) (JPEG 文件标识)
- 文件结束标识 (2 bytes): $ff, $d9 (EOI)
2.TGA
- 未压缩的前5字节00 00 02 00 00
- RLE压缩的前5字节00 00 10 00 00
3.PNG
- 文件头标识 (8 bytes)89 50 4E 47 0D 0A 1A 0A
4.GIF
- 文件头标识 (6 bytes)47 49 46 38 39(37) 61
GIF89 (7)a
5.BMP
- 文件头标识 (2 bytes)42 4D
BM
6.PCX
- 文件头标识 (1 bytes)0A
7.TIFF
- 文件头标识 (2 bytes)4D 4D 或 49 49
8.ICO
- 文件头标识 (8 bytes)00 00 01 00 01 00 20 20
9.CUR
- 文件头标识 (8 bytes)00 00 02 00 01 00 20 20
10.IFF
- 文件头标识 (4 bytes)46 4F 52 4D
FORM
11.ANI
- 文件头标识 (4 bytes)52 49 46 46
RIFF
关于vb.net图片类和vb编程图片的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- linux下查看文档命令,linux查看文档内容
- jquerymobile打包视频,jquery前端项目怎么打包
- 订阅类网站搭建流程,订阅类网站搭建流程是什么
- wd硬盘怎么看是串行接口,怎么判断硬盘接口类型
- go语言GoDs go语言goto用法
- 赣州如何做好社区营销策划,如何开展社区营销?
- 开发一个游戏有前途吗小说,开发一个游戏需要什么条件
- 微信直播签名,直播签名怎么签
- 取绝对值函数c语言 c语言取绝对值运算