首页 > 其他分享 >jpg图片的解压

jpg图片的解压

时间:2024-05-13 23:23:04浏览次数:14  
标签:解压 libjpeg 步骤 解码 jpg 图片

IO编程

jpg图片的解压

image

在完成jpg图片的解压之前,我们先得了解到libjpeg库的正确移植

1.下载需要移植的库的源码包,libjpeg库源码包在官网可以下载 www.ijg.org
2.解压压缩包,解压后找到自述文件README,打开README了解libjpeg库的使用规则

image

以下就是看了README才知道执行的步骤,很多库的移植大多数都是以下操作;

步骤:

打开源码包中的install.txt的文本,学习libjpeg库的移植和安装的步骤,移植libjpeg的步骤分为三步:配置(./configure) + 编译(make) + 安装(make install)

image

4. 把下载好的源码包jpegsrc.v9f.tar.gz发送到linux系统的家目录下进行解压,注意不可以在共享文件夹进行解压
5.切换到解压后的jpeg-9f的文件夹内,然后输入指令配置libjpeg库,*配置*的时候需要使用一个叫做configure的配置文件,该配置文件有两个选项非常重要:--prefix 和 --host

有可能会与遇到相关的error错误,我就是在这里耽误了很久的时间,记得根据错误提示去找原因

例如我的错误里面有一个--xx.dependent.tracking 解决方法就是./configure --xx.dependent.tracking 后面就可以正常安装了

6. 配置成功之后,会得到一个makefile脚本文件,此时可以完成移植的第二步:*编译*,在命令行输入指令:make ,该指令会自动执行makefile
7.编译通过之后,则可以完成libjpeg库的*安装*,此时在命令行输入指令: make install
8.安装完成后,可以在用户指定的安装路径中找到生成的libjpeg库的头文件和库文件,此时用户可以选择拷贝出来,就可以设计程序时使用
9.把include文件夹和lib文件夹与自己的工程文件放在同一个路径,方便后期的工程维护

因为以后我们要做一个更大的项目 所以我们得学会如何建立接口然后最后再去调用他们 可以建立一个project 然后把库以及相关的接口放进去 以便后期整理和运用

接下来就是超级重点!步骤可都是要求背下来的!

JPG图片的解压过程

为了可以把一张jpg图片显示在LCD上,所以需要把jpg图片进行解压,解压之后就可以得到图片内部的像素点的颜色分量,就可以把像素点的颜色分量向LCD的像素点写入

①可以看README,就知道要去libjpeg.txt文档中去找相关的步骤

②好好利用lijpeg库中的example.c【实名移植】

③最后添加一些自己循环设计 来实现解压

相关libjpeg.txt中提到的解压步骤如下:

1.创建解码对象,并且对解码对象进行初始化,另外需要创建错误处理对象,并和解码对象进行关联
2.打开待解码的jpg图片,使用fopen的时候需要添加选项”b”,以二进制方式打开文件
3. 读取待解码图片的文件头,并把图像信息和解码对象进行关联,通过解码对象对jpg图片进行解码
4.可以选择设置解码参数,如果打算以默认参数对jpg图片进行解码,则可以省略该步骤
5.开始对jpg图片进行解码,调用函数之后开始解码,可以得到图像宽、图像高等信息
6.*开始设计一个循环,在循环中每次读取1行的图像数据,并写入到LCD中,注意:转换算法需要用户自己设计*
7.在所有的图像数据都已经解码完成后,则调用函数完成解码即可,然后释放相关资源
8.程序实现(在虚拟机上编译 在开发板上运行 开发板是基于ARM平台的)
arm-linux-gcc main.c -o main -I ./include -L ./lib -ljpeg  //在虚拟机上编译指令

标签:解压,libjpeg,步骤,解码,jpg,图片
From: https://www.cnblogs.com/little-mirror/p/18190275

相关文章

  • 设计程序,实现在LCD上任意位置显示一张任意大小的色深为24bit的bmp图片,要求图像不失真
    文件IO练习题设计程序,实现在LCD上任意位置显示一张任意大小的色深为24bit的bmp图片,要求图像不失真可以在开发板的LCD上显示。代码:/****************************************************************************************************************** * filename : Show......
  • 实现bmp格式图片的2倍缩小功能,并输出新的目标bmp格式文件。最后利用800*480的开发板,展
    /***********************************************************************************************************实现bmp格式图片的2倍缩小功能,并输出新的目标bmp格式文件。最后利用800*480的开发*板,展示缩放后的bmp文件****Copyright(c)2023-202418975491291......
  • 在LCD上的任意位置显示一张任意大小的jpg图片
    /***************************************************filename:lcdshowjpg.c*author:[email protected]*date:2024/05/13*brief:完成libjpeg库的移植,并设计程序实现在LCD上的任意位置显示一张任意大小的jpg图片,注意不要越界。*note:......
  • 将bmp文件转换成JPEG(待修改,目前可转换但图片倒转)
    #include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>#include<sys/mman.h>/**IncludefileforusersofJPEGlibrary.*Youwillneedtoha......
  • ACCESS 修改按钮上的图片
    需求:我有个按钮,设置了lock图标,想在点击它的时候,图标在lock与unlock之前切换 实现代码:PrivateSubCommand297_Click()IfCommand297.Tag=-1Then'changetounlockCommand297.Picture="unlock"Command297.Tag=0Else......
  • 探索Django:从项目创建到图片上传的全方位指南
    Django是什么Django是一个流行的PythonWeb开发框架,它提供了一系列工具和库,用于帮助开发人员构建高效、可扩展的Web应用程序。Django的目标是让开发者能够以快速和简单的方式构建复杂的Web应用,通过提供许多预构建的组件和功能,如ORM(对象关系映射)、表单处理、认证系统、管......
  • PictureCleaner:一款实用的本地图片处理工具
    PictureCleaner:一款实用的本地图片处理工具简介:对于日常办公和学习生活中图片处理的需求,今天推荐一款名为PictureCleaner的实用软件。这款软件专为Windows系统打造,具备多种图片处理功能,且完全免费、无广告,无需安装即可使用。主要功能:图片矫正:对于拍照时出现的倾斜或变形,Pictu......
  • C#实现图片转Base64字符串.并支持markdown文件打开展示
    引用1.0.3版本或以上的Wesky.Net.OpenTools包1.0.3版本提供图片转Base64字符串方案,并提供根据后缀名自动识别Mime类型,合成标准URI开源项目地址:Gitee:https://gitee.com/dreamer_j/open-tools.gitGithub:https://github.com/LittleLittleRobot/OpenTools.git为了简单操作......
  • golang 压缩包解压问题汇总
    解压代码packagemainimport( "archive/zip" "bytes" "fmt" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" "io" "io/ioutil" "os" "path/......
  • 将任意bmp图片大小重新设置后生成新的bmp图片
    #include<stdio.h>#include<stdlib.h>#include<string.h>#pragmapack(1)/*必须在结构体定义之前使用,这是为了让结构体中各成员按1字节对齐*/typedefstructtagBITMAPFILEHEADER{ unsignedshortbfType; //保存图片类型。'BM' unsignedlongbfSize; //位图......