图形输出中的屏幕截图[Windows XP中的Turbo C ++ 3.0]

时间:2015-07-17 07:12:03

标签: windows-xp screenshot turbo-c++ bgi

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

检查项目at codeproject.com哪个有你想要的!

使用代码非常简单。结帐example