出于学习目的,我想知道如何自己实现图像(和/或)pdf查看器。
我对实现这样的事情的一般方法感兴趣。
我已经读过网上的不同格式(tiff / pdf),所以我发现这些文件有一种特殊的格式,描述了我需要查找标题的位置,页脚所在的位置以及图像信息的位置(以解密的形式)是。
因为我觉得这样的观众工作......像:
我需要知道,如何获取像素位置(如果是tiff文件)。
如何将其创建为控件?我必须在哪里放置像素?
如果我错了,请随意纠正我,因为ATM我真的没有想法,一切都只是猜测。
此致
INNO
P.S。:我更喜欢C#中的解决方案,但如果它是另一种语言,那也没问题。平台应该是Microsoft Windows(首先)。
P.P.S。:它应该在没有安装pdf- / viewing-application的情况下工作。
答案 0 :(得分:1)
对于任何类似的观看者,您必须查找要显示的每种文件类型的规格并找出其数据的编码方式。某些图像格式基于其他图像格式,或使用类似的编码技术,而其他图像格式彼此完全不同。 PDF是另一个野兽。我已经做了一些工作,从我记得(我可能是错的,它已经有一段时间了)它基本上表现为一系列对象,每个对象具有独特的位置,大小和依赖于对象类型的各种属性
我会看看维基百科。它实际上有一些关于一些不同图像格式的非常好的文章。
http://en.wikipedia.org/wiki/JPEG
它肯定会指向您想要涵盖的每种格式的官方标准文档。
最终,您可能最终必须阅读/实施每种格式的rfc:
JPEG - http://tools.ietf.org/html/rfc1341
PNG - http://www.faqs.org/rfcs/rfc2083.html
GIF - http://www.w3.org/Graphics/GIF/spec-gif89a.txt
BMP - http://www.faqs.org/rfcs/rfc797.html
HTH
答案 1 :(得分:0)
以下是将图像转换为字节数组的方法。
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
如何将其创建为控件?我必须在哪里放置像素? 此字节数组包含图像像素数据。(请参阅8位或16位图像类型) 现在,您可以将图像绘制到任何面板中,并将其作为自定义控件。
我不知道pdf格式。