当前位置: 首页 > news >正文

企业备案 网站服务内容网站建设编辑部

企业备案 网站服务内容,网站建设编辑部,招商网站建设全包,电子商务网站建设收获目录 前言 一.LCD显示 二.LCD颜色显示 2.1 直接显示 2.2 mmap映射显示 前言 mmap是一种内存映射文件的方法#xff0c;它允许将文件或其它对象映射到进程的地址空间。 使用mmap映射函数进行映射显示#xff0c;与屏幕普通直接显示相比有很大的优势 一.LCD显示基础 像素、分辨… 目录 前言 一.LCD显示 二.LCD颜色显示 2.1 直接显示 2.2 mmap映射显示 前言 mmap是一种内存映射文件的方法它允许将文件或其它对象映射到进程的地址空间。 使用mmap映射函数进行映射显示与屏幕普通直接显示相比有很大的优势 一.LCD显示基础 像素、分辨率和色彩深度是数字图像处理和计算机图形学中三个非常重要的概念它们共同决定了图像的质量和细节。下面将对这三个概念进行详细解释 像素Pixel 像素是“picture element”的缩写指的是构成数字图像的最小单位。每个像素代表图像中的一个点并且具有特定的颜色值。在数字图像中像素是按照网格状排列的每个像素的位置由其在水平和垂直方向上的坐标来确定。图像的尺寸通常由像素的数量来表示例如一个1920x1080的图像意味着它在水平方向上有1920个像素在垂直方向上有1080个像素。 分辨率Resolution 分辨率是指图像中像素的密度通常以每英寸像素数Pixels Per InchPPI来衡量。分辨率越高意味着在相同的物理尺寸下图像包含的像素点越多图像的细节也就越丰富。屏幕分辨率和打印分辨率是分辨率的两种常见类型。屏幕分辨率通常指的是显示器能够显示的像素数量而打印分辨率则是指在每英寸的打印区域内包含的点数通常以DPIDots Per Inch来表示。 色彩深度Color Depth 色彩深度又称为位深度Bit Depth是指每个像素可以表示的颜色数的多少。色彩深度越高表示的颜色就越多图像的色彩层次也就越丰富。色彩深度通常以位数bit来表示例如 1位色彩深度可以表示2^12种颜色通常为黑白。8位色彩深度可以表示2^8256种颜色。24位色彩深度可以表示2^24约1677万种颜色标准的真彩色。32位色彩深度除了24位的RGB颜色信息外还包括8位的Alpha通道用于表示透明度信息。 这三个概念相互关联共同影响图像的质量和观感。例如一个高分辨率的图像如果在色彩深度上不足可能会导致颜色过渡不自然而一个色彩深度很高的图像如果分辨率较低可能无法展现足够的细节。因此在图像处理和设计中需要根据具体需求和应用场景来平衡这三个因素以达到最佳的视觉效果。 二.LCD颜色显示 2.1 直接显示 如果不使用mmap函数内存映射。把arm-linux-gcc编译后生成的文件传送到开发板中显示颜色我们可以观察下屏幕显示的效果有部分像素没有显示出来甚至要把源文件运行两遍色彩才会正常 #include stdio.h #include sys/types.h #include sys/stat.h #include fcntl.h #include unistd.h#define LCD_PATH /dev/fb0int main(int argc, char const *argv[]) {// 1. 打开LCD 设备文件int fd_lcd open( LCD_PATH , O_RDWR );if( -1 fd_lcd){perror(open lcd error);return -1 ;}// 2. 写入RGB的十六进制int color 0xFF7F ;for (size_t i 0; i 800*480; i){write(fd_lcd , color , 4);}// 3. 关闭 close(fd_lcd);return 0; }这里的write函数它会自动移动直到for循环结束 2.2 mmap映射显示 mmap是一种内存映射文件的方法它允许将文件或其它对象映射到进程的地址空间。 以下是mmap的一些相关内容 原理概述mmap将用户空间的虚拟内存地址与文件进行映射使得对这些内存地址的读写操作等同于对文件的读写操作。这样可以通过指针来读写映射的内存区域而系统会自动处理脏页的回写即将修改过的数据同步到文件所在的磁盘上。映射类型内存映射可以分为两种类型一种是将虚拟内存映射到匿名物理内存页通常用于分配和释放内存另一种是将虚拟内存映射到文件页用于文件的读写操作。优势mmap的优势在于它提供了一种高效的方式来访问文件因为它减少了数据在用户空间和内核空间之间的拷贝。此外它还可以实现不同进程间的文件共享因为多个进程可以映射同一个文件的不同部分到它们的虚拟地址空间中。使用方式mmap通常通过mmap()和munmap()系统调用接口来实现。mmap()用于创建映射而munmap()用于解除映射。需要注意的是mmap必须以页PAGE_SIZE为单位进行映射。缺点虽然mmap提高了文件操作的效率但它也需要处理同步和锁定页缓存的问题。此外如果映射的文件非常大可能会占用大量的虚拟内存地址空间。 总的来说mmap是操作系统提供的一种强大功能它通过内存映射机制优化了文件的读写过程减少了数据拷贝提高了数据处理效率。然而它也需要合理管理以确保系统资源的高效使用。 使用mmap内存映射函数 其中行为800像素点列为480像素点也就是显示屏的行可以使用800int进行表示列可以使用400个int表示mmap的返回值为int* #include stdio.h #include sys/types.h #include sys/stat.h #include fcntl.h #include unistd.h #include sys/mman.h#define LCD_PATH /dev/fb0int main(int argc, char const *argv[]) {// 1. 打开LCD 设备文件int fd_lcd open( LCD_PATH , O_RDWR );if( -1 fd_lcd){perror(open lcd error);return -1 ;}// 内存映射int * p_lcd mmap(NULL , 800*480*4 , PROT_READ | PROT_WRITE , MAP_SHARED , fd_lcd , 0 );if (MAP_FAILED p_lcd){perror(mmap error);return -1 ;}// 2. 写入RGB的十六进制int color[3] {0x00FF0000, 0x0000FF00, 0x000000FF};// int (* buf)[480][800] calloc() int i 0 ;while(1){for (int y 0; y 480 ; y){for (int x 0; x 800 ; x){// x宽 y高度 假设y5 则表示需要跳过5行* (p_lcdxy*800) color[i] ;}}i ;if (i 3 ){i 0 ;}sleep(1);}// for (size_t i 0; i 800*480; i)// {// * (p_lcdi) color ;// }// 3. 关闭 close(fd_lcd);munmap(p_lcd , 800*480*4 );return 0; }
http://www.pierceye.com/news/897706/

相关文章:

  • 老板合作网站开发宁波网站建设慕枫科技
  • 做外贸都有哪些好网站河北沙河市规划局或建设局网站
  • 网站设计建设维护专门做网站的app
  • 哈尔滨建站模板大全慈溪高端网站设计
  • 升阳广州做网站公司门户网站建设存在的问题和差距
  • 杭州建设行业网站做兼职网站
  • 连云港市城乡建设管理局网站wordpress怎么设置
  • 如何找做网站的公司网站建站哪家公司好
  • 网站建设性价比高珠海网站建设工程
  • 设计公司网站需要什么条件网站建设与管理课程代码
  • 局域网网站怎么做软件定制开发的发展前景
  • 门户网站关键词旅游网站开发报价单
  • 哪个网站做视频收益高社区服务呼叫系统 网站的建设
  • 网站是如何制作的工厂 电商网站建设
  • 展览设计网站有哪些南海网站智能推广
  • 贵阳做网站需要多少钱凡科网站建设完成下载下载器
  • 虚拟机上做钓鱼网站照片网站怎么做
  • 建网页和建网站编程猫少儿编程app下载
  • 网站首页介绍cms系统架构
  • 建设厅的工程造价网站东莞网站优化方式
  • 微信网站模板源码wordpress如何编辑
  • 做网站p图工具公司网站建设教程
  • 网站 选项卡 图标苏州网站网页设计
  • 柳州网站建设优化推广wordpress 不显示菜单
  • 网站死循环网站备案和域名备案区别
  • 做网站要学会什么语言装修公司网站模板下载
  • 门户网站建设自查报告网站关键词快速排名技术
  • 如何建网站费用多少全国工商企业查询平台
  • 兰州新区建站什么是网络营销取得成功的基础
  • 南昌 网站 公司wordpress迁移后媒体库丢失