public static byte[] createEmfTag(String sRand) throws Exception{
Random random = new Random();// 创建一个随机类
Vector<EMFTag> emf = new Vector<EMFTag>();
// 创建边框
RoundRect rr=new RoundRect(new Rectangle(10, 10, 119, 59) ,new Dimension(1,1));
emf.add(rr);
// 创建字体,字体的大小应该根据图片的高度来定。
// LogFontW font = new LogFontW(-82, 0, 0, 0, 0, false, true, false,0, 3, 2, 1, 0x22, "Times New Roman");
// Panose panose = new Panose();
// ExtLogFontW extFont = new ExtLogFontW(font, "", "", 0, 0, 0, new byte[] {0, 0, 0, 0}, 0, panose);
// ExtCreateFontIndirectW ecfi=new ExtCreateFontIndirectW(1,extFont);
// emf.add(ecfi);
// 设置文字的颜色
SetTextColor st=new SetTextColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110)));
emf.add(st);
//设置验证码
TextW tw=new TextW(new Point(20, 30),sRand, 0, new Rectangle(1, 1, 11, 5), new int[] { 30, 30, 30, 0, 0 });
emf.add(new ExtTextOutW(new Rectangle(0,0,120,60), 2, 120, 60, tw));
//随机加入10条干扰线
for (int i = 0; i < 10; i++) {
LineTo lt=new LineTo(new Point(random.nextInt(150),random.nextInt(80)));
emf.add(lt);
}
//随机产生100个干扰点
for (int i = 0; i < 100; i++) {
emf.add(new SetPixelV(new Point(random.nextInt(120),random.nextInt(60)),getRandColor(160, 200)));
}
emf.add(new EOF());
ByteArrayOutputStream os = new ByteArrayOutputStream();
try{
EMFOutputStream out = new EMFOutputStream(os, new Rectangle(10, 10, 119, 59),
new EMFHandleManager(), "", "", new Dimension(120, 60));
for (int i = 0; i < emf.size(); i++) {
out.writeTag((org.freehep.util.io.Tag)emf.get(i));
}
out.close();
return os.toByteArray();
}catch(Exception ex){
throw ex;
}finally{
if (os != null)
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static Color getRandColor(int lower, int upper) {
Random random = new Random();
if (upper > 255)
upper = 255;
if (upper < 1)
upper = 1;
if (lower < 1)
lower = 1;
if (lower > 255)
lower = 255;
int r = lower + random.nextInt(upper - lower);
int g = lower + random.nextInt(upper - lower);
int b = lower + random.nextInt(upper - lower);
return new Color(r, g, b);
}
分享到:
相关推荐
在本项目中,我们关注的是如何将EMF图片转换为PNG格式,这通常涉及到图像处理和编程技术。`freehep`是一个开源的Java库,专门用于2D图形和图像处理,其中包括了将EMF转换为其他格式的功能。`freehep`库是由Heiko ...
3. **设备独立性**:EMF格式不依赖于特定的显示器或打印机,因此可以在不同设备间保持一致性。 4. **颜色和变换支持**:EMF支持RGB、CMYK等颜色空间,以及复杂的变换矩阵,允许进行平移、旋转和缩放操作。 5. **混合...
### 微软EMF文件格式详解 #### 一、引言 EMF(Enhanced MetaFile)是一种在Windows操作系统中广泛使用的高级元文件格式。它作为WMF(Windows Metafile)格式的32位增强版,旨在解决WMF在印刷行业中的一些限制。EMF...
EMF图片转为JPG/PNG 需安装GraphicsMagick 提供实例代码
5. **打印与投影**:EMF格式的图片在打印时可以保持高分辨率,适合制作专业报告或海报。在投影时,由于其矢量特性,即使在大屏幕上显示,图像也不会模糊。 6. **颜色管理**:EMF文件支持多种颜色模式,包括RGB和...
这种格式在1992年推出,作为Windows 3.x的Windows Metafile (WMF) 格式的升级版本,提供更高质量的图像输出和更多的功能。 EMF文件的核心优势在于它能够保存图形对象的矢量信息,这意味着图像可以在不失真的情况下...
本资源"Delphi将jpg、bmp、wmf格式转换为emf格式.rar"提供了使用Delphi编程语言实现图像格式转换的方法,特别是将常见的jpg、bmp、wmf格式转换成增强型元文件(EMF)格式。EMF是一种矢量图形格式,支持高分辨率缩放...
把可Office的EMF格式转化为eps格式的精悍利器,赞一个……
综上所述,"后台运行pdf文件转成EMF图片"涉及的技术包括PDF文件格式的理解、EMF矢量图像的优势、后台处理的自动化、图形截取和转换工具的使用。在实际操作中,需要考虑兼容性、效率和质量等因素,以满足不同的业务...
EMF(Enhanced Metafile)文件是Windows操作系统中使用的一种矢量图形和图元文件格式。这种文件类型被广泛用于存储图形、图像和打印数据,因为它支持复杂的图形操作,如曲线绘制、渐变填充和透明效果。EMF文件是GDI+...
总的来说,"获取WMF、EMF图片中文字所用字体名称"是一个实用的工具,对于经常处理这类图像格式的开发者和设计师来说非常有价值。它揭示了字体在图形文件中的重要性,并提供了一个解决方案,使得跨平台共享和显示WMF...
3. **兼容性**:EMF格式被大多数Windows应用程序所支持,便于在不同软件之间进行图形交换。 #### 六、注意事项 - 在导出EMF格式前,确保电路图的布局已达到满意的状态。 - 考虑到不同的应用环境,建议同时保存一份...
在IT行业中,打印机缓存文件SPL和图片文件EMF是两种不同的图形格式,与打印作业和图像处理紧密相关。本文将深入探讨如何利用C#编程语言将SPL文件转换为EMF文件。 首先,我们需要了解SPL和EMF文件的基本概念: 1. *...
SVG(Scalable Vector Graphics)和EMF(Enhanced Metafile)是两种常见的矢量图形格式,但它们在不同的环境中有着不同的应用。本示例代码是关于如何使用Java将SVG转换为EMF,这在需要在Windows系统中处理矢量图形时...
- XMI(XML Metadata Interchange)是EMF默认的数据交换格式,用于将Ecore模型转换为XML。 - XSD(XML Schema Definition)是XML的语法规则,EMF可以使用XSD文件作为输入,生成对应的Ecore模型,从而实现XML到模型...
EMF (Enhanced Metafile) 和 BMP (Bitmap) 是两种常见的图像文件格式,在Windows操作系统中广泛使用。EMF是一种矢量图格式,可以保存图形、文本和其他元素,并且支持抗锯齿,这意味着在放大时图像边缘依然保持平滑。...
eps, emf, jpg 等图片格式在不同的应用场景中被广泛使用。然而,eps, emf, jpg 等格式之间的转换一直是困扰用户的一个问题。本文将详细介绍 eps, emf, jpg 格式之间的相互转换方法。 首先,eps 格式是一种矢量格式...
EMF(Enhanced Metafile)是一种Windows操作系统中的矢量图形格式,主要用于存储图形和图像数据。它具有高质量的缩放特性,理论上在任何比例下显示都不会失真,因为它的图形是基于数学公式而不是像素点阵。然而,你...
打印机的脱机文件.spl 格式,可通过转换生成 .emf格式供查看打印内容,此SPL转EMF工具可以方便的转换,适用于网络监控,信息安全方面的需求
Delphi emf图片格式转换程序,单击【Convert】按钮实现转换,可设置转换后emf文件大小,关键点:通过画图实现转换,你知道么?最后显示和保存转换结果。从示例截图看上去,转换后的效果一样,但是文件格式已经改变,...