
数码相框
b02330224
这个作者很懒,什么都没留下…
展开
-
framebuffer显示bmp格式文件
bmp格式的位图文件的编码格式简单,解析也较容易。在linux framebuffer 的基础上,可以很快的编写一些代码来显示图片。本文将基于此实现在arm开发板上对bmp位图的显示。 bmp格式中的结构组成分为四部分: 位图头:保存位图文件的总体信息。位图信息:保存位图图像的详细信息。调色板:保存所用颜色的定义。位图数据:保存一个又一个像素的实际图像。转载 2012-10-18 13:59:52 · 1323 阅读 · 0 评论 -
Linux下C语言实现LCD屏幕截图
一、概述 最近看到网上有人问怎么用C语言实现屏幕截图,刚好自己也在研究Linux驱动,于是花了半天时间把Linux的FrameBuffer驱动看懂了个七八,接着就动手写了个LCD屏幕截图的应用程序。 一些说明: 1. 板子LCD的分辨率为480x272,像素格式为RGB565。 2. 程序首先获取LCD的一些参数 ,然后将获取到转载 2012-10-18 14:26:59 · 1101 阅读 · 0 评论 -
libjpeg用法
libjpeg是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。这个库由独立JPEG工作组维护。最新版本号是6b,于1998年发布。可以参考维基百科关于libjpeg的介绍http://zh.wikipedia.org/wiki/Libjpeg。libjpeg库的数据结构 用libjpeg库解码jpeg数据的时候,最重要的数据类型为s转载 2012-10-22 20:09:51 · 1547 阅读 · 0 评论 -
YUYV JPEG
1.什么是RGB?RGB是红绿蓝三原色的意思,R=Red、G=Green、B=Blue。2.什么是YUV/YCbCr/YPbPr?亮度信号经常被称作Y,色度信号是由两个互相独立的信号组成。视颜色系统和格式不同,两种色度信号经常被称作U和V或Pb和Pr或Cb和Cr。这些都是由不同的编码格式所产生的,但是实际上,他们的概念基本相同。在DVD中,色度信号被存储成Cb和Cr(C代表颜色,b转载 2012-10-22 20:11:29 · 909 阅读 · 0 评论 -
使用libjpeg库在LCD上显示图片
背景:网上已经有很多关于利用libjpeg显示图片的文章了,因此本文的技术含量不算高。本文是使用libjpeg的v8版本,在开发板的LCD上显示jpg格式图片,关于libjpeg,可到其官方网站下载源码,源码附有许多文档,包括详细的例子(example.c)。关于如何使用libjpeg,本文不再说明,因为网上文章已经很多了。本文中的代码有几处是自已经修改过的。1、将所有操作frameb转载 2012-10-22 20:15:29 · 1662 阅读 · 0 评论 -
将图片嵌入程序文件的一点研究
背景:重读《程序员的自我修养——链接、装载与库》,里面第3章主要讲目标文件。同时讲到如何将一些二进制文件作为目标文件的一个段(详细的请参考此书)。像图片、音乐文件其实也是二进制文件(作为初级程序的我,还没有达到将一切看成二进制的境界)。本文就以此展开了一些研究,顺便复习一下binutils工具以及gdb的使用。另外,也将这个知识应用到我的ARM开发板上,即是在原来基本上,添加图片的显示转载 2012-10-22 20:16:05 · 582 阅读 · 0 评论 -
将图片嵌入程序文件的测试
继前面的文章,本文是一个测试例子,并给出测试结果。将图片转换成目标文件命令与x86平台相类似,只需修改几个参数即可。命令如下:$ arm-linux-objcopy -I binary -O elf32-littlearm -B arm logo.jpg logo.o需要注意的是输出文件的格式,即-O选项的内容,这里是elf32-littlearm,原来是写elf32-li转载 2012-10-22 20:16:56 · 536 阅读 · 0 评论 -
libjpeg的解压过程
1、分配并初始化一个JPEG解压对象(本文中将JPEG解压对象命名为cinfo): struct jpeg_decompress_struct cinfo; struct jpeg_error_mgr jerr; ... cinfo.err = jpeg_std_error(&jerr); jpeg_create_decompr转载 2012-10-22 20:20:48 · 1110 阅读 · 0 评论 -
在Linux控制台下使用libjpeg显示JPEG图像在framebuffer上
1、引言通常情况下,在Linux控制台下是无法查看图像文件的,要想查看图像文件,比如要查看JPEG格式的图像文件,可能必须启动X-Windows,通过GNOME或者KDE之类的桌面管理器提供的图像查看工具查看图片内容。那么,能不能有办法在控制台下面简单地浏览图像内容呢。实际上,这是完全可以的。在Linux下有一个名为zgv的看图软件就是工作在控制台下的。不过,由于它所使用的底层图形库svgal转载 2012-10-22 20:08:37 · 707 阅读 · 0 评论 -
libjpeg 的使用sample RGB转换到JPEG
想在程序中用到JPEG的图片保存,所以花了点时间。一开始在网上找资源,发现现成的还不好找,所以,贴出来共享!首先到网上找相应的库文件,这个大家到网上Google一下就可以了示例代码如下:extern "C"{ #include "jpeglib/jpeglib.h"} int _tmain(int argc, _TCHAR* argv[]){ //定转载 2012-10-22 20:07:09 · 1104 阅读 · 0 评论 -
linux下利用libjpeg库对jpg格式图片的操作
1、在网上找到了libjpeg,可以用这个库实现JPG图片的各种操作:下载:http://freeware.sgi.com/source/libjpeg/libjpeg-6b.tar.gz2、参考README安装库,大体步骤:./configureMakeMake install3、安装后,djpeg命令在/usr/bin目录下,对jpg格式图像的处理的命令格式:以将j转载 2012-10-22 20:13:20 · 2328 阅读 · 0 评论 -
与图片相关的几个库的编译
背景:我的开发板自带的编译器是经过开发商修改的,原来已经带有了libjpeg、libpng库了。现在想换个新的版本。最近想研究jpeg文件,想在开发板的屏幕上显示出来,于是在网上找了点资料,不过绝大资料都是6b这个版本的,而这个版本是1998年发布的,至今仍在使用。截至本文发表时,最新版本是8c,2011年1月发布的。同时,也顺便将png、gif两个库一起编译了。我是个喜欢折腾的人,自从大三买转载 2012-10-22 20:14:39 · 428 阅读 · 0 评论 -
模拟时钟在LCD上的显示
我很早就想做一个模拟时钟了,网上也有很多C语言写的模拟时钟的代码,不过是基于TC的。后来我找到一个使用easy X lib写的模拟时钟,于是就将它移植到我的开发板屏幕上。前面已经完成了LCD的画点、画线、画圆等等基本函数了。与参考的代码不同的是刷新屏幕问题,我是考虑了一些时间才想到的。完整的画模拟时钟代码如下:/** * @file graphic_test.c * @转载 2012-10-22 20:18:18 · 2468 阅读 · 0 评论 -
通过写framebuffer显示BMP图片
这段时间一直在搞触摸屏的相关工作,调完驱动后,老大要我再做个校准程序,这个校准程序要在开机时就运行,这个程序其实只会执行这一次,因为在上层还会用JAVA写一个校准程序。暂不说校准本身,就说提示语吧,本来画几个十字架就OK了,或者再做个英文提示,就执行一次吗,但是老大还是要我学着输出中文提示,校准程序在Android刚开机还没有开启其它任务时就要运行,此时还不支持中文字库,于是我就偷个懒向frame转载 2012-10-18 14:24:42 · 790 阅读 · 2 评论 -
S3C6410 FrameBuffer编程(六) --- 利用FrameBuffer显示图片,并实现左右、上下、180度翻转
[html] view plaincopy/*********wzk_fb.h*************/ /******************************** /* 定义了屏幕信息结构体 */ #include stdio.h> #include stdlib.h> #include unistd.h>转载 2012-10-18 14:16:07 · 2281 阅读 · 0 评论 -
终于把BMP显示出来了!
弄了一晚上,终于在Linux Framebuffer下把BMP图像文件显示出来了,但是还有一点不明白的地方,那就是“BytesPerLine = (ciWidth * ciBitCount + 31) / 32 * 4;”。这个教科书上的公式,我搞不明白是什么意思?不过,收获也是有一点的,那就是真彩模式下,Framebuffer一个像素由4个字节组成,虽然是RGB颜色,但是这4个字节表示的却是bl转载 2012-10-18 13:56:57 · 1319 阅读 · 1 评论 -
Linux framebuffer显示bmp图片
framebuffer简介 帧缓冲(framebuffer)是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。framebuffer是LCD对应的一中HAL(硬件抽象层),提供抽象的,统一的接口操作,用户不必关心硬件层是怎么实施的。这些都是由Framebuffer设备驱动来完成的。 帧缓冲设备对应的转载 2012-10-18 14:01:11 · 720 阅读 · 0 评论 -
framebuffer显示bmp格式文件
bmp格式的位图文件的编码格式简单,解析也较容易。在linux framebuffer 的基础上,可以很快的编写一些代码来显示图片。本文将基于此实现在arm开发板上对bmp位图的显示。 bmp格式中的结构组成分为四部分: 位图头:保存位图文件的总体信息。位图信息:保存位图图像的详细信息。调色板:保存所用颜色的定义。位图数据:保存一个又一个像素的实际图像。 我们要做的就是通转载 2012-10-18 14:08:35 · 1532 阅读 · 0 评论 -
通过写framebuffer显示BMP图片
#include #include #include #include #include #include #include #include #include //14byte文件头typedef struct{char cfType[2];//文件类型,"BM"(0x4D42) long cfSize;//文件大小(字转载 2012-10-18 14:36:57 · 902 阅读 · 1 评论 -
Ubuntu 9.10 实现用framebuffer显示bmp图片
在命令行下利用framebuffer显示bmp格式的图片,首先要打开framebuffer设备,ubuntu 9.10 是打开/boot/grub/grub.cfg 文件 在“linux /boot/vmlinuz-2.6.31-22-generic root=UUID=dadb1e1d-b7b7-45c8-a031-21d2e840c608 ro quiet splash vga=7转载 2012-10-18 13:51:13 · 994 阅读 · 0 评论 -
在Framebuffer下编程显示BMP图象
今天看别人的代码,知道可以使控制台进入图形模式,这样SHELL程序的显示就不会影响BMP图像的显示了。于是,COPY过来,放入自己先前的那个程序,再整个800x600的BMP图,试试全屏显示的效果!爽^0^爽/* showbmp.c allenyao 2006/11/10*/#include #include #include #include转载 2012-10-18 13:52:34 · 783 阅读 · 0 评论 -
S3C6410 FrameBuffer编程(二) ---- 与BMP格式图片相关的结构体
1. 文件信息结构体typedef struct bmp_file{unsigned short map_id; //图片类型unsigned int file_size; //文件大小unsigned int reserved; //无定义,默认为0unsigned int offset; // 偏移量:从文件开始到数据区的长度}__attribu转载 2012-10-18 14:13:18 · 564 阅读 · 0 评论 -
S3C6410 FrameBuffer编程(三) --- 向LCD中写入数据
1.自定义屏幕信息结构体struct screen_info{ unsigned int smem_size; //屏幕缓冲区所占的空间大小 unsigned int line_size; //一行所占的空间大小 unsigned int xres; //屏幕的宽 uns转载 2012-10-18 14:13:47 · 709 阅读 · 0 评论 -
BMP位图格式学习
BMP文件格式分析http://lhbyron.bokee.com/652956.htmlhttp://mti.xidian.edu.cn/multimedia/multi/course1-6-1.html下面是我自己的一点理解。一个BMP位图文件由以下四部分组成,“位图文件头”、“位图信息头”、“彩色表”和“图像数据阵列字节”。其中“位图文件头”是固定大小14个字转载 2012-10-18 13:58:08 · 903 阅读 · 0 评论 -
S3C6410 FrameBuffer编程(一) ---- 获取屏幕属性
#include #include #include #include #include int main () { int fp=0; struct fb_var_screeninfo vinfo; struct fb_fix_screeninfo finfo; fp = open ("/d转载 2012-10-18 14:12:49 · 394 阅读 · 0 评论 -
S3C6410 FramBuffer编程(四) --- RGB565、RGB24简介,以及RGB565转换为RGB24
1.RGB565 RGB565使用16位表示一个像素,这16位中的5位用于R,6位用于G,5位用于B。程序中通常使用一个字(WORD,一个字等于两个字节)来操作一个像素。当读出一个像素后,这个字的各个位意义如下: 高字节 低字节 R R R R R G G G G G G B B B B B 可以组合使用屏蔽字和移位操作来得到RGB各分量的值转载 2012-10-18 14:14:28 · 605 阅读 · 0 评论 -
S3C6410 FramBuffer编程(五) --- 读取bmp格式图片的一般步骤
1.打开文件 fp = fopen("./wzk.bmp","rb");if(fp == NULL){goto CLOSE;return -1;}2.读取文件头信息,并判断是否是bmp文件 rc = fread(&FileHead,sizeof(BMPFILEHEADER),1,fp);if(rc != 1转载 2012-10-18 14:15:00 · 697 阅读 · 0 评论 -
JPEG图像的解紧缩操纵
JPEG图像的解紧缩操纵 解紧缩操纵过程1. 为JPEG对象分派空间并初始化2. 指定解紧缩数据源3. 获取文件信息4. 为解紧缩设定参数,包含图像大小,色彩空间5. 开端解紧缩6. 取出数据7. 解紧缩完毕8.转载 2012-10-22 20:21:30 · 739 阅读 · 0 评论