`

emf格式图片,费了3天时间

 
阅读更多
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

    在本项目中,我们关注的是如何将EMF图片转换为PNG格式,这通常涉及到图像处理和编程技术。`freehep`是一个开源的Java库,专门用于2D图形和图像处理,其中包括了将EMF转换为其他格式的功能。`freehep`库是由Heiko ...

    emf文件格式详解

    3. **设备独立性**:EMF格式不依赖于特定的显示器或打印机,因此可以在不同设备间保持一致性。 4. **颜色和变换支持**:EMF支持RGB、CMYK等颜色空间,以及复杂的变换矩阵,允许进行平移、旋转和缩放操作。 5. **混合...

    微软emf文件格式详解

    ### 微软EMF文件格式详解 #### 一、引言 EMF(Enhanced MetaFile)是一种在Windows操作系统中广泛使用的高级元文件格式。它作为WMF(Windows Metafile)格式的32位增强版,旨在解决WMF在印刷行业中的一些限制。EMF...

    EMF图片转为JPG/PNG

    EMF图片转为JPG/PNG 需安装GraphicsMagick 提供实例代码

    PPT用图EMF格式675个

    5. **打印与投影**:EMF格式的图片在打印时可以保持高分辨率,适合制作专业报告或海报。在投影时,由于其矢量特性,即使在大屏幕上显示,图像也不会模糊。 6. **颜色管理**:EMF文件支持多种颜色模式,包括RGB和...

    英文版微软EMF文件格式

    这种格式在1992年推出,作为Windows 3.x的Windows Metafile (WMF) 格式的升级版本,提供更高质量的图像输出和更多的功能。 EMF文件的核心优势在于它能够保存图形对象的矢量信息,这意味着图像可以在不失真的情况下...

    Delphi将jpg、bmp、wmf格式转换为emf格式.rar

    本资源"Delphi将jpg、bmp、wmf格式转换为emf格式.rar"提供了使用Delphi编程语言实现图像格式转换的方法,特别是将常见的jpg、bmp、wmf格式转换成增强型元文件(EMF)格式。EMF是一种矢量图形格式,支持高分辨率缩放...

    后台运行pdf文件转成EMF图片

    综上所述,"后台运行pdf文件转成EMF图片"涉及的技术包括PDF文件格式的理解、EMF矢量图像的优势、后台处理的自动化、图形截取和转换工具的使用。在实际操作中,需要考虑兼容性、效率和质量等因素,以满足不同的业务...

    将Office的EMF格式转化为eps格式的工具

    把可Office的EMF格式转化为eps格式的精悍利器,赞一个……

    C# 将打印机临时缓存文件SPL转为图片文件EMF

    在IT行业中,打印机缓存文件SPL和图片文件EMF是两种不同的图形格式,与打印作业和图像处理紧密相关。本文将深入探讨如何利用C#编程语言将SPL文件转换为EMF文件。 首先,我们需要了解SPL和EMF文件的基本概念: 1. *...

    获取WMF、EMF图片中文字所用字体名称

    总的来说,"获取WMF、EMF图片中文字所用字体名称"是一个实用的工具,对于经常处理这类图像格式的开发者和设计师来说非常有价值。它揭示了字体在图形文件中的重要性,并提供了一个解决方案,使得跨平台共享和显示WMF...

    SVG转EMF的示例代码

    SVG(Scalable Vector Graphics)和EMF(Enhanced Metafile)是两种常见的矢量图形格式,但它们在不同的环境中有着不同的应用。本示例代码是关于如何使用Java将SVG转换为EMF,这在需要在Windows系统中处理矢量图形时...

    EMF读取XML

    - XMI(XML Metadata Interchange)是EMF默认的数据交换格式,用于将Ecore模型转换为XML。 - XSD(XML Schema Definition)是XML的语法规则,EMF可以使用XSD文件作为输入,生成对应的Ecore模型,从而实现XML到模型...

    multism软件导出emf图片方法

    3. **兼容性**:EMF格式被大多数Windows应用程序所支持,便于在不同软件之间进行图形交换。 #### 六、注意事项 - 在导出EMF格式前,确保电路图的布局已达到满意的状态。 - 考虑到不同的应用环境,建议同时保存一份...

    emf 转 BMP格式 lib

    EMF (Enhanced Metafile) 和 BMP (Bitmap) 是两种常见的图像文件格式,在Windows操作系统中广泛使用。EMF是一种矢量图格式,可以保存图形、文本和其他元素,并且支持抗锯齿,这意味着在放大时图像边缘依然保持平滑。...

    eps,emf,jpg格式相互转换方法.pdf

    eps, emf, jpg 等图片格式在不同的应用场景中被广泛使用。然而,eps, emf, jpg 等格式之间的转换一直是困扰用户的一个问题。本文将详细介绍 eps, emf, jpg 格式之间的相互转换方法。 首先,eps 格式是一种矢量格式...

    EMF文件提取文本,预览,打印

    EMF(Enhanced Metafile)文件是Windows操作系统中使用的一种矢量图形和图元文件格式。这种文件类型被广泛用于存储图形、图像和打印数据,因为它支持复杂的图形操作,如曲线绘制、渐变填充和透明效果。EMF文件是GDI+...

    EMF和BMP文件格式的相互转换

    EMF和BMP文件格式的相互转换:BOOL CConvertEMFToBMP::ConvertBMPToEMF(const char*pszBMPFile,const char* pszEMFFile)

    Delphi emf图片格式转换程序.rar

    Delphi emf图片格式转换程序,单击【Convert】按钮实现转换,可设置转换后emf文件大小,关键点:通过画图实现转换,你知道么?最后显示和保存转换结果。从示例截图看上去,转换后的效果一样,但是文件格式已经改变,...

    EMF文件格式,我找了很久,共享一下,希望对大家有帮助

    此格式是对“Windows 图元文件格式”的改进,包含了一些扩展功能,例如,下面的功能:内置的缩放比例信息 · 与文件一起保存的内置说明 调色板和设备独立性方面的改进EMF 格式是可扩展的格式,这意味着程序员可以...

Global site tag (gtag.js) - Google Analytics