-
2018-06-08 14:04:52
JPG
jpg全名是JPEG 。JPEG 图片以 24 位颜色存储单个光栅图像。JPEG 是与平台无关的格式,支持最高级别的压缩,不过,这种压缩是有损耗的。渐近式 JPEG 文件支持交错。
jpg功能
可以提高或降低 JPEG文件压缩的级别。但是,文件大小是以牺牲图像质量为代价的。压缩比率可以高达 100:1。(JPEG 格式可在 10:1 到 20:1 的比率下轻松地压缩文件,而图片质量不会下降。)JPEG 压缩可以很好地处理写实摄影作品。但是,对于颜色较少、对比级别强烈、实心边框或纯色区域大的较简单的作品,JPEG 压缩无法提供理想的结果。有时,压缩比率会低到 5:1,严重损失了图片完整性。这一损失产生的原因是,JPEG 压缩方案可以很好地压缩类似的色调,但是 JPEG 压缩方案不能很好地处理亮度的强烈差异或处理纯色区域。
jpg优缺点
优点:摄影作品或写实作品支持高级压缩。
利用可变的压缩比可以控制文件大小。
支持交错(对于渐近式 JPEG 文件)。
广泛支持Internet 标准。
由于体积小,jpg在万维网中被用来储存和传输照片的格式。缺点:有损耗压缩会使原始图片数据质量下降。
当您编辑和重新保存 JPEG 文件时,JPEG 会混合原始图片数据的质量下降。这种下降是累积性的。
JPEG 不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。jpg使用范围
jpg格式是一种图片格式,是一种比较常见的图画格式,如果你的图片是其他格式,可以通过以下方法转化:
1、photoshop ,打开图画以后,按另存为,下面格式那里选择JPG格式就是了,这个方法比较简单,而且适合画质比较好的,要求比较高的图片转换。
2、如果你要求不高,你直接通过windows附带的图画程序,选择JPG格式就可以,这种转换方式画质不高
如果JPG格式转其他格式,这样的方法同样适用。jpg压缩模式
JPEG (Joint Photographic Experts GROUP)是由国际标准组织(ISO:International Standardization Organization)和国际电话电报咨询委员会(CCITT:Consultation Commitee of the International Telephone and Telegraph)为静态图像所建立的第一个国际数字图像压缩标准,也是至今一直在使用的、应用最广的图像压缩标准。JPEG由于可以提供有损压缩,因此压缩比可以达到其他传统压缩算法无法比拟的程度。
JPEG的压缩模式有以下几种:
顺序式编码(Sequential Encoding)
一次将图像由左到右、由上到下顺序处理。
递增式编码(Progressive Encoding)
当图像传输的时间较长时,可将图像分数次处理,以从模糊到清晰的方式来传送图像(效果类似GIF在网络上的传输)。
无失真编码(Lossless Encoding)
阶梯式编码(Hierarchical Encoding)
图像以数种分辨率来压缩,其目的是为了让具有高分辨率的图像也可以在较低分辨率的设备上显示。jpg压缩步骤
由于JPEG的无损压缩方式并不比其他的压缩方法更优秀,因此我们着重来看它的有损压缩。以一幅24位彩色图像为例,JPEG的压缩步骤分为:
1.颜色转换
由于JPEG只支持YUV颜色模式的数据结构,而不支持RGB图像数据结构,所以在将彩色图像进行压缩之前,必须先对颜色模式进行数据转换。各个值的转换可以通过下面的转换公式计算得出:
Y=0.299R+0.587G+0.114B
U=-0.169R-0.3313G+0.5B
V=0.5R-0.4187G-0.0813B
其中,Y表示亮度,U和V表示颜色。转换完成之后还需要进行数据采样。一般采用的采样比例是4:1:1或4:2:2。由于在执行了此项工作之后,每两行数据只保留一行,因此,采样后图像数据量将压缩为原来的一半。
2.DCT变换
DCT(Discrete Consine Transform)是将图像信号在频率域上进行变换,分离出高频和低频信息的处理过程。然后再对图像的高频部分(即图像细节)进行压缩,以达到压缩图像数据的目的。
首先将图像划分为多个8*8的矩阵。然后对每一个矩阵作DCT变换(变换公式此略)。变换后得到一个频率系数矩阵,其中的频率系数都是浮点数。3.量化
由于在后面编码过程中使用的码本都是整数,因此需要对变换后的频率系数进行量化,将之转换为整数。
由于进行数据量化后,矩阵中的数据都是近似值,和原始图像数据之间有了差异,这一差异是造成图像压缩后失真的主要原因。
在这一过程中,质量因子的选取至为重要。值选得过大,可以大幅度提高压缩比,但是图像质量就比较差;反之,质量因子越小(最小为1),图像重建质量越好,但是压缩比越低。对此,ISO已经制定了一组供JPEG代码实现者使用的标准量化值。4.编码
从前面过程我们可以看到,颜色转换完成到编码之前,图像并没有得到进一步的压缩,DCT变换和量化可以说是为编码阶段做准备。
编码采用两种机制:一是0值的行程长度编码;二是熵编码(Entropy Coding)。
在JPEG中,采用曲徊序列,即以矩阵对角线的法线方向作“之”字排列矩阵中的元素。这样做的优点是使得靠近矩阵左上角、值比较大的元素排列在行程的前面,而行程的后面所排列的矩阵元素基本上为0值。行程长度编码是非常简单和常用的编码方式,在此不再赘述。编码实际上是一种基于统计特性的编码方法。在JPEG中允许采用HUFFMAN编码或者算术编码。
更多相关内容 -
使用Python-OpenCV将图片批量转换为jpg格式
2021-07-16 20:41:43就在目标文件夹中建立子文件夹 os.mkdir(tarDir) img_path = os.path.join(fileDir, name) save_path = os.path.join(tarDir, n+".jpg") img = cv.imread(img_path) cv.imwrite(save_path,img) cv.destroyAllWindows...1.配置环境
平台:Ubuntu 20.04
2.代码:
# author:Hurricane # date: 2021/7/16 # E-mail:hurri_cane@qq.com import os, random, shutil import cv2 as cv from tqdm import tqdm def Resize_img(fileDir, tarDir): # print(os.path.exists(tarDir)) # if not os.path.exists(tarDir) or os.path.exists(fileDir): # 如果目标文件夹的子文件夹不存在,就在目标文件夹中建立子文件夹 # print("Dir Error!") # return pathDir = os.listdir(fileDir) filenumber = len(pathDir) # 计算文件总数 print("Totle img",filenumber) for name in tqdm(pathDir): n,suffix = name.split(".") if not os.path.exists(tarDir): # 如果目标文件夹的子文件夹不存在,就在目标文件夹中建立子文件夹 os.mkdir(tarDir) img_path = os.path.join(fileDir, name) save_path = os.path.join(tarDir, n+".jpg") img = cv.imread(img_path) cv.imwrite(save_path,img) cv.destroyAllWindows() if __name__ == '__main__': fileDir = r"/home/sha/Data_Set/data_KIITI_car_part/images" # 源图片文件夹路径 tarDir = r"/media/sha/Disk_1/Data_Set/Data_KIITI_car_part/org_data/data_KIITI/imgages_jpg" Resize_img(fileDir, tarDir) print("Extract Successfully!")
3.使用方法
if __name__ == '__main__':
下面的两个路径需要修改为自己文件夹的路径
其中fileDir
为目前存放图片文件的文件夹;tarDir
为转换后图片存放的文件夹当然,如果你想将图片批量转换为其他格式。如“png”,那么你可以在代码中第22行中
".jpg"
改为.png
4.结束语
如果本文对你有帮助的话还请点赞、收藏一键带走哦,你的支持是我最大的动力!(づ。◕ᴗᴗ◕。)づ
-
将png格式图片批量转存为jpg格式
2020-11-28 00:13:37本文记录于2020-11-28,主要实现利用python将png格式图片批量转存为jpg格式。如不方便运行使用python,可转至本文exe文件部分。
1 前言
本文记录于2020-11-28,主要实现利用
python
将png
格式图片批量转存为jpg
格式。如不方便运行使用python,可转至代码封装为exe文件部分。
2 原理
png格式与jpg格式之间的转换,可通过直接更换后缀完成。
3 实现功能
-
读取 “ png ” 文件夹内含有的文件总数以及png格式图片个数;
-
若 “ png ” 文件夹内含有png格式图片,开始执行以下转换操作;
-
判断存放jpg图片的 “ jpg ” 文件夹是否存在,存在着清空文件夹,不存在则新建文件夹;
-
将png格式图片复制,更改后缀为jpg后存至 “ jpg ” 文件夹中,并输出处理结果。
4 代码
import os import shutil png_path = "./png" # png格式图片所在文件夹的路径 jpg_path = "./jpg" # jpg格式图片存放文件夹的路径 file_walk = os.listdir(png_path) fileNum = 0 # png文件夹下所有文件个数计数 png_fileNum = 0 # png文件夹下png图片个数计数 for filePath in file_walk: fileNum += 1 protion = os.path.splitext(filePath) if protion[1].lower() == '.png': # 判断文件后缀是否为png if png_fileNum == 0: # 当png文件夹中有png图片 # 判断是否存在jpg文件夹,存在则清空文件夹,不存在就建立文件夹 if os.path.exists(jpg_path): shutil.rmtree(jpg_path) os.mkdir(jpg_path) print("jpg文件夹内原文件已清除") else: os.mkdir(jpg_path) print("jpg文件夹已创建") png_fileNum += 1 print("正在处理:" + filePath) # 复制转存png图片为jpg格式到jpg文件夹中 shutil.copyfile(os.path.join(png_path, filePath), os.path.join(jpg_path, protion[0] + '.jpg')) print('\n文件夹内共有' + str(fileNum) + '个文件,其中png格式文件有' + str(png_fileNum) + '个,已全部完成转换,存至jpg文件夹内') # stop = input("\n\n请按回车键退出!") # 暂停查看信息
5 运行
5.1 运行前文件夹设置
python所在文件夹(只有python文件和png文件夹):
png文件夹(保存需要转换的png图片):
5.2 python运行后结果
不存在jpg文件夹(新建文件夹jpg)
jpg文件夹已创建 正在处理:20201125182129620.png 正在处理:20201125184408396.png 正在处理:20201125185718890.png 正在处理:20201125190302675.png 正在处理:20201125190653554.png 正在处理:20201125190935933.png 正在处理:20201125195454652.png 正在处理:20201125195815228.png 正在处理:20201125200045732.png 正在处理:202011252002278.png 正在处理:20201125200457297.png 正在处理:20201125201845871.png 正在处理:20201125202208111.png 正在处理:20201125202318461.png 正在处理:20201125202445599.png 正在处理:2020112520280741.png 正在处理:20201125203050943.png 正在处理:20201125203216831.png 正在处理:20201125203452829.png 正在处理:20201125204537121.png 正在处理:20201125204605648.png 正在处理:20201125204834186.png 文件夹内共有22个文件,其中png格式文件有22个,已全部完成转换,存至jpg文件夹内
python所在文件夹(增加jpg文件夹):
jpg文件夹(保存转换后的jpg文件):
png文件夹(无变动):
已存在jpg文件夹(清空文件夹内文件)
jpg文件夹内原文件已清除 正在处理:20201125182129620.png 正在处理:20201125184408396.png 正在处理:20201125185718890.png 正在处理:20201125190302675.png 正在处理:20201125190653554.png 正在处理:20201125190935933.png 正在处理:20201125195454652.png 正在处理:20201125195815228.png 正在处理:20201125200045732.png 正在处理:202011252002278.png 正在处理:20201125200457297.png 正在处理:20201125201845871.png 正在处理:20201125202208111.png 正在处理:20201125202318461.png 正在处理:20201125202445599.png 正在处理:2020112520280741.png 正在处理:20201125203050943.png 正在处理:20201125203216831.png 正在处理:20201125203452829.png 正在处理:20201125204537121.png 正在处理:20201125204605648.png 正在处理:20201125204834186.png 文件夹内共有22个文件,其中png格式文件有22个,已全部完成转换,存至jpg文件夹内
6 代码封装为exe文件
如不方便运行使用python,可 下载exe文件 至前文所提及python文件处,双击运行即可。
7 结语
本笔记仅用于记录,不作商用。
感谢各位读者的支持,真诚希望本文能对您有所帮助!
-
-
iPhone拍摄的照片(heic格式)转jpg格式---Java
2019-06-03 19:45:581.只能将heic格式文件读取成... * 将二进制转换成图片保存---------场景(将heic格式转化为jpg格式) * @param imgStr 二进制流转换的字符串 * @param imgPath 图片的保存路径 * @param imgName 图片的名称 * @r...1.只能将heic格式文件读取成二进制流才能成功---用imageIO包读取返回结果为null
/** * 将二进制转换成图片保存---------场景(将heic格式转化为jpg格式) * @param imgStr 二进制流转换的字符串 * @param imgPath 图片的保存路径 * @param imgName 图片的名称 * @return true:保存正常 false:保存失败 */ // @ClearInterceptor(ClearLayer.ALL) public boolean saveToImgByBytes(File imgFile, String imgPath, String imgName){ boolean stateInt = true; if(imgFile.length() > 0){ try { File file=new File(imgPath, imgName);//可以是任何图片格式.jpg,.png等 FileOutputStream fos=new FileOutputStream(file); FileInputStream fis = new FileInputStream(imgFile); byte[] b = new byte[1024]; int nRead = 0; while ((nRead = fis.read(b)) != -1) { fos.write(b, 0, nRead); } fos.flush(); fos.close(); fis.close(); } catch (Exception e) { stateInt = false; e.printStackTrace(); } finally { } } return stateInt; }
2.下载的时候直接判断是否是heic格式,如果是,直接转码,写成jpg格式保存
// 参数filename----写上后缀就能直接转码成jpg格式 /** * @从制定URL下载文件并保存到指定目录 * @param filePath 文件将要保存的目录 * @param method 请求方法,包括POST和GET * @param url 请求的路径 * @return */ public String downloadFromUrl(String url, String filePath, String method, String fileName){ // fileName = 全景图的name-枚举 + 序号 //创建不同的文件夹目录 File file = new File(filePath); //判断文件夹是否存在 if (!file.exists()) { //如果文件夹不存在,则创建新的的文件夹 file.mkdirs(); } FileOutputStream fileOut = null; HttpURLConnection conn = null; InputStream inputStream = null; String contentLength = null; try { // 建立链接 URL httpUrl=new URL(url); conn = (HttpURLConnection) httpUrl.openConnection(); //以Post方式提交表单,默认get方式 conn.setRequestMethod(method); conn.setDoInput(true); conn.setDoOutput(true); // post方式不能使用缓存 conn.setUseCaches(false); //连接指定的资源 conn.connect(); //获取网络输入流 inputStream=conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(inputStream); //判断文件的保存路径后面是否以/结尾 if (!filePath.endsWith("/")) { filePath += "/"; } //写入到文件(注意文件保存路径的后面一定要加上文件的名称) fileOut = new FileOutputStream(filePath + fileName); BufferedOutputStream bos = new BufferedOutputStream(fileOut); byte[] buf = new byte[4096]; int length = bis.read(buf); //保存文件 while(length != -1) { bos.write(buf, 0, length); length = bis.read(buf); } // 获取response header值 contentLength = getContentLength(conn); bos.close(); bis.close(); conn.disconnect(); } catch (Exception e) { LOGGER.error("下载文件异常:{}", e); } return contentLength; }
-
JPG png GIF BMP常见图像格式的介绍与区别
2019-03-31 11:38:40JPG 全名应该是JPEG。JPEG 图片以 24 位颜色存储单个光栅图像。JPEG 是与平台无关的格式,支持最高级别的压缩,不过,这种压缩是有损耗的。渐近式 JPEG 文件支持交错。 可以提高或降低 JPEG 文件压缩的级别。... -
关于图片格式转换(png、jpg转tif)
2019-10-22 19:58:30关于图片格式转换(png、jpg转tif) 看来网上很多文章,图片格式的转换有opencv库和PIL库,由于只是简单对图像进行格式转换,所以选择了PIL库(Pillow支持最新的3.x版本)进行相应的转换工作。相比之下,PIL库更加... -
几种基本图片格式的区别与不同(bmp,jpg,png,gif,tif)
2020-02-28 09:55:07位图bmp/jpg/png/gif/tif 我们从文件的大小(从大到小)上来说吧。 bmp格式 bmp(bitmap)格式,标准的位图格式,缺点是完全不压缩,体积极大,且一旦压缩有可能掉颜色,优点是完全无损保存。运用不多,基本不应用于... -
各种图片编码格式详解(bmp,jpg,png)
2016-12-02 10:16:04常见的图片格式有bmp, jpg(jpeg), png, gif, webp等。 图像基本数据结构 要讲图片格式还先得从图像的基本数据结构说起。在计算机中, 图像是由一个个像素点组成,像素点就是颜色点,而颜色最简单的方式就是用... -
在 VC++6.0 中将 JPG 格式图片转换成 BMP 格式
2013-07-16 20:07:24二、 添加转换代码,实现将打开的 JPG 格式文件保存成 BMP 格式文件 (1)在 CSshowView 中添加如下成员变量 [cpp] view plain copy CString strOpenFileName;... -
土地利用JPG数据转栅格
2021-01-26 15:52:45土地利用JPG数据转栅格 ⑴.PS提取指定色彩数据范围 ⑵.重分类-提取单类型栅格数据 ⑶.镶嵌-合成全部类型栅格数据 ⑷.地理配准-给定正确空间位置信息 ⑸.掩膜提取-提取指定效范围内栅格数据 ⑹.修改栅格值(略。详见... -
jpg格式
2012-04-17 11:31:14.jpg , .jpeg , .jpe .jif , .jfif , .jfi Internet media type image/jpeg Type code JPEG Uniform Type Identifier public.jpeg Magic number ff d8 ... -
lepton:Lepton是一种工具和文件格式,可平均无损压缩JPEG 22%
2021-04-06 11:27:22轻子Lepton是一种工具和文件格式,可平均无损压缩JPEG 22%。 这可用于存档大型照片集,或实时提供图像并节省22%的带宽。建立方向使用单核./autogen.sh./configuremakemake check对于多处理器计算机: ./autogen.sh... -
将jpg图片转换为max模型方法.doc
2020-03-02 00:46:46将jpg图片转换为max模型 将JPEG图片转换到3D进行浮雕效果处理方法 一首先建立一个新图层然后将图片内所有黑颜色载入选区 ?1打开图像新建图层选中黑色区域建立选区 二删除背景图层进入路径面板将选取转换成路径 2去掉... -
PNG、JPG等普通图片高保真转SVG图
2021-06-02 11:45:52通过UI软件将png、jpg等主流图片转成svg图片,高保真转换,100%成功。 -
微信电脑版DAT图片文件转JPG/PNG图片的简单工具
2021-04-03 09:44:47支持JPG和PNG 文件存储位置 首先找到这些图片 微信电脑版的图片文件,一般存储在:微信文件夹\微信号\FileStorage\Image 在这个目录下有一些按年月建立的文件夹,分别存储了对应月份的接收到的图片的文件 比如,我的... -
python3 ,批量的jpg图片与同名png格式一一互换
2020-09-03 16:39:47python3 ,批量的jpg图片与同名png格式互换 有时候进行图片预处理,需要进行格式之间的转换。 具体 jpg\png格式的图片知识,自行百度。 import cv2 import tensorflow as tf import os ''' jpg、png格式之间按 ... -
带jgw文件的jpg数据显示地理坐标
2020-06-28 18:32:51查询后了解到,jpg是不带坐标和空间参考的,但是jgw保存坐标,axu.xml保存空间参考信息。所以我们有了jgw文件,是可以获取数据的地理坐标的,而空间参考由于下载的是百度数据,而百度坐标系是火星坐标系,可以通过... -
C++实现图片格式转换
2022-03-07 16:19:59C++实现图片格式转换非常简单,使用到了atlimage.h库,该库内有Cimage类可实现图片格式转换,不清楚的...建立CImage类对象 调用Load方法加载需要的 调用save方法保存为想要转换的格式 二、代码 #include<string>... -
JPG,png,GIF,BMP四种常见图像格式的对比
2019-10-04 02:39:33JPG(JPEG) JPEG 图片以 24 位颜色存储单个光栅图像。JPEG是与平台无关的格式,支持最高级别的压缩,不过,这种压缩是有损耗的。渐近式JPEG 文件支持交错。 可以提高或降低 JPEG文件压缩的级别。但是,文件大小是... -
内蒙古哈珠幅(K47E011011)1比50 000地质图数据库JPG_V1 (1).rar
2021-08-30 15:20:14图幅基于前人地、物、化、遥等成果资料,采用预研究、遥感解译、野外路线调查、剖面实测等技术路线和方法,详细填绘了北山造山带...图饰图廓包括地层综合柱状图、侵入岩演化序列表、图切剖面、图例、责任签、引用格式等 -
PaddleDetection——使用(jpg + xml)制作VOC数据集并建立PD包
2020-05-09 21:30:54文章目录 voc数据集格式 生成VOC数据集的txt文件 生成Main文件下的txt文件 生成包含jpg和xml信息的txt文件 创建label_list 下载PaddleDetection包 修改预训练模型的Configs配置 修改num_classes 修改pascalvoc_... -
为什么我最近PS存出来 的JPG图片都很大
2021-02-09 00:22:41展开全部将ps文件存储为jpg图片e5a48de588b63231313335323631343130323136353331333366306461的时候,发现图片会很大,几十甚至上百M,解决PS中存储JPG图片很大的问题操作步骤如下:1.鼠标置于桌面右键“新建-文本... -
在线jpg转换成pdf格式
2014-10-30 10:16:06Q:萝莉在一家外企公司从事美工设计工作,每天的任务是不断收集一些精美的JPG格式图片供给推广部门使用。虽然看起来很简单,可实际做起来并不是什么易事,尤其是当图片收集多了,对后期的选择上十分不便。请问“砖家... -
电离层VTEC模型建立
2018-09-13 18:16:15运用fortran对原始数据进行了格式转换。 输出数据内容为时刻、经度、纬度、VTEC值等13*71*73=67379行,4列的-result.txt文件,用于下一步的绘图,此外还输出了加上日期等信息的-说明结果.txt文件,用于结果的说明。 ... -
h5文件格式详解及h5文件与图片文件之间的相互转换(python实现)
2022-04-15 20:49:06H5文件是层次数据格式第5代的版本(Hierarchical Data Format,HDF5),它是用于存储科学数据的一种文件格式和库文件。由美国超级计算中心与应用中心研发的文件格式,用以存储和组织大规模数据. H5将文件结构简化成... -
关于SDL_image不能播放jpg格式的问题
2014-04-16 16:05:57在写这篇文章前,博主默认读者正在编写SDL相关的代码,并且安装好了SDL和SDL的扩展库,本文只是解决安装了扩展库后,依然不能播放jpg格式的问题。 首先,网上有很多的资料,如怎么加载库,使用哪些函数等,我就不... -
复制当前目录所有文件夹及其子文件夹下的*.jpg文件到store文件夹下
2020-11-02 13:16:55复制当前目录所有文件夹及其子文件夹下的*.jpg文件到store文件夹下 -
Windows7无法显示.png、.jpg图片缩略图的问题
2018-10-15 18:38:45实验环境(蓝色粗体字为特别注意内容) 1,环境:Windows 7 Ultimate ...今天打开电脑的时候突然发现电脑的.png文件和.jpg文件的图标都无法正常显示,其他格式的缩略图比如word、excel的倒是正常的。如下图所示: ... -
linux系统V4L2架构OV3640摄像头视频捕获保存图片jpg格式
2014-11-08 13:12:11//如果该视频设备驱动不支持你所设定的图像格式,视频驱动会重新修改struct v4l2_format结构体变量的值为该视频设备所支持的图像格式, //所以在程序设计中,设定完所有的视频格式后,要获取实际的视频格式,要...