如何在wpf + c#中将图像转换为文本和文本到图像#

时间:2009-06-11 06:36:49

标签: c# wpf

我想开发一个可以将图像转换为文本格式(某些Ascii格式)和文本格式转换为图像格式的应用程序。我想要这个因为我需要减小图像文件的大小。 任何建议PLZ。 提前致谢, 易卜拉欣。

3 个答案:

答案 0 :(得分:2)

实际上,当您将图像转换为文本时,您将增加大小,而不是减少它!原因很简单:如果以二进制格式存储图像,您将拥有可用于存储图像的字节的完整值谱。当您使用文本格式时,值谱限制为26个大写字符,26个小写字符,10个数字和一堆特殊字符,但它远小于二进制模式下的256个值。

通常使用UUEncoding将二进制文件转换为文本并重新传回。它是一个编码系统,仍然设法生成一个合理的小文本流,它是一个很好的标准,已经在许多地方使用,有大量的库可用于几十种语言。 UUEncoding使用64个不同的字符,因此每3个字节的二进制数据被转换为4个字符。 (增加三分之一。)

要使二进制图像更小,请使用不同的图像格式,如JPG或PNG。建议JPG拍摄照片,其中一些质量损失不是一个大问题。当图像质量必须很高或图像有一些透明部分时,通常会使用PNG。如果您的原始图像是BMP然后将其转换为PNG,然后对PNG文件进行UUEncoding将导致文件大小的相当大的缩小。 (但那是因为PNG压缩,而不是编码。)

答案 1 :(得分:1)

如果您希望缩小图像尺寸,是否意味着您希望缩小图像文件大小或缩小显示屏尺寸?

如果您希望减小文件大小,那么将其转换为ASCII文件将无济于事。相反,你需要压缩它。 (通过将位图转换为jpeg来说)。

修改

根据您的评论。我建议您查看JpegBitmapDecoder和JpegBitmapEncoder类,将jpeg文件解码为位图,然后从一开始就使用不同的valkues编码位图。

Microsoft info

另请查看此处了解更多信息,包括如何覆盖75%的默认压缩 More info

答案 2 :(得分:0)

如果您想要识别图片中的字母并将其转换为文字,那么OCR libraries之一呢?