-1

我无法在 Windows XP 的 Turbo C++ 中生成的图形输出中截取屏幕截图。怎么做?

我尝试了 PrintScreen 并将其粘贴到 MSPaint 中,但没有帮助。

4

2 回答 2

0

Turbo C 图形在 VGA(或兼容)模式下工作。要将输出保存到 JPEG 文件,最好的办法是自己在代码中完成。

将像素绘制到内存缓冲区,然后使用任何开源库(例如“libjpeg”)将其转换为 JPEG。检查http://www.jpegcameras.com/libjpeg/libjpeg.html

由于您已经将输出绘制到屏幕上,您可以将 VGA 内存缓冲区复制到您自己的内存缓冲区并使用它(而不是直接将像素绘制到内存缓冲区)。

或者,获取指向 VGA 内存的指针并将其传递给 JPEG 库以创建 jpeg 图像。

您可以按如下方式访问显存:

typedef unsigned char byte; 
byte far *VGA = (byte far*)0xA0000000L; 

查看http://www.brackeen.com/vga/basics.html

另请注意,JPEG 是一种有损压缩。也就是说,您保存的 jpeg 图像可能与输入图像“不同”。从视觉上看,它们看起来都一样,但“内容”本身并不相同。

如果您计划进行“比较”,那么您应该选择无损格式,例如 TIFF 或 BMP。将图像保存到 BMP 是快速而直接的。查看http://gpalem.web.officelive.com/bitmap.html#SaveB itmap

此外,如果您有兴趣从一系列 JPEG 图像或位图创建电影,您可能会发现http://gpalem.web.officelive.com/createmovie.html非常适合。

资料来源:http ://c.ittoolbox.com/groups/technical-functional/cpp-l/how-to-convert-the-c-graphics-output-as-a-jpeg-file-3276074

于 2016-01-25T22:04:41.537 回答
0

在 codeproject.com 上查看具有您想要的项目的项目!

使用代码非常简单。签出这个例子

于 2016-01-25T22:53:09.740 回答