Foxtable(狐表)用户栏目专家坐堂 → [求助]【条形码】能保存矢量图吗?


  共有1951人关注过本帖树形打印复制链接

主题:[求助]【条形码】能保存矢量图吗?

帅哥哟,离线,有人找我吗?
hui986
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:494 积分:3432 威望:0 精华:0 注册:2012/3/29 21:15:00
[求助]【条形码】能保存矢量图吗?  发帖心情 Post By:2016/6/6 18:17:00 [只看该作者]

如题,我想将生成的条形码保存为【矢量图】,这样便于我们做图时的应用!

SaveImage

将生成的图片保存为文件,语法:

SaveImage(FileName, DPI)

FileName:指定文件名。
DPI:      可选参数,每英寸的像素点数,默认为300,DPI越大,图像越清晰。

系统会根据文件的扩展名以合适的格式保存文件,例如文件名是“c:\data\bar.bmp”,系统会以BMP格式保存文件,如果文件名是"c:\data\bar.wmf",则以WMF格式保存文件。

示例:

With e.Form.Controls("BarCode1")
    .SaveImage(
"c:\data\001.bmp")
    .SaveImage(
"c:\data\002.bmp",600)
End
 
With



正常的WMF是矢量图,但是出来是图片(点阵图)!

[此贴子已经被作者于2016/6/6 18:18:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/6/7 8:34:00 [只看该作者]

试试
Dim BarCode1 As WinForm.BarCode = e.Form.Controls("BarCode1")
Dim bmp = New Bitmap(BarCode1.GetImage())
Dim gs = Graphics.FromImage(bmp)
Dim mf = New Imaging.Metafile("D:\005.wmf", gs.GetHdc())
Dim g = Graphics.FromImage(mf)
g.DrawImageUnscaled(bmp, 0, 0)
g.Save()
g.Dispose()
mf.Dispose()

 回到顶部
帅哥哟,离线,有人找我吗?
hui986
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:494 积分:3432 威望:0 精华:0 注册:2012/3/29 21:15:00
  发帖心情 Post By:2016/6/7 12:29:00 [只看该作者]

谢谢!我刚测试过,还是不行!
生成出来还是点阵图


Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.Code128
Bar.Code = "010501301"
Bar.BarRatio = 0.8
Bar.BarHeight = 8
Bar.DisplayCode = False
'bar.SaveImage("c:\测试条形码.jpg",600)

Dim bmp = New Bitmap(bar.GetImage())
Dim gs = Graphics.FromImage(bmp)
Dim mf = New Imaging.Metafile("D:\0051.wmf", gs.GetHdc())
Dim g = Graphics.FromImage(mf)
g.DrawImageUnscaled(bmp, 0, 0)
g.Save()
g.Dispose()

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/6/7 14:30:00 [只看该作者]

vs帮助说.NET Framework 的 GDI+ 组件没有可用来将文件另存为 .wmf 或 .emf 文件的编码器,实际保存的是png格式,可能要第三方的编码器才行,比如Adobe Illustrator SDKs:http://www.adobe.com/devnet/illustrator/sdk.html
或者提高一下图像质量

Dim Bar As New BarCodeBuilder
Bar.Symbology = Barpro.Symbology.Code128
Bar.Code = "010501301"
Bar.BarRatio = 0.8
Bar.BarHeight = 8
Bar.DisplayCode = False
'bar.SaveImage("c:\测试条形码.jpg",600)

Dim bmp = New Bitmap(bar.GetImage())
Dim gs = Graphics.FromImage(bmp)
Dim mf = New Imaging.Metafile("F:\0051.wmf", gs.GetHdc())
Dim g = Graphics.FromImage(mf)
g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
g.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
g.DrawImageUnscaled(bmp, 0, 0)
g.Save()
g.Dispose()

 回到顶部
帅哥哟,离线,有人找我吗?
hui986
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:494 积分:3432 威望:0 精华:0 注册:2012/3/29 21:15:00
  发帖心情 Post By:2016/6/7 14:43:00 [只看该作者]

好的,非常感谢您的热心回复!
我现在的处理方式就是放大尺寸+ 提高分辨率!

 回到顶部