精华内容
下载资源
问答
  • cifar-10数据集合(jpg图片集合版本),图片集合,该数据集共有60000张彩色图像,这些图像是32*32,分为10个类,每类6000张图。
  • C语言解码JPG图片源代码

    热门讨论 2015-07-04 16:28:07
    这个非常有利于理解解码jpg图片的原理,作者是日本人,写的很经典
  • Base64转换图片JPG

    热门讨论 2014-07-14 10:37:06
    將Base64 Code轉換為jpg,方便JPG等圖片格式的傳送加密安全
  • C# JPG转换BMP文件

    2014-06-28 19:46:37
    C# JPG转换BMP文件
  • MFC显示JPG图片

    千次下载 热门讨论 2014-08-03 15:58:37
    MFC显示JPG、BMP、GIF图片等, 注意,代码中没有是否DC, 实际使用中,记得是否DC,不然会导致内存泄露。 ReleaseDC(pDC);
  • ffmpeg将视频帧转换为jpg格式的图像

    热门讨论 2014-11-12 11:10:34
    利用ffmpeg将获取到的视频帧转换为jpg格式的图片,jpg格式的图片用到了libjpeg的库。具体的编译过程可以看我的blog
  • matlab代码将dat数据转换成jpg图像并保存,简单可行
  • jpg转bin工具

    热门讨论 2012-04-10 16:32:42
    jpg格式图片转换成bin格式文件
  • XnConvert(webp转jpg) 万能图片转换工具

    热门讨论 2014-01-23 09:14:08
    xnconvert是一款简单易用的批量图像格式转换软件。你可以轻松的实现图像格式的转换、缩放图像比例、添加滤镜特效、水印等等。 尤其适合将网页下载的webp格式图片,转化为jpg格式
  • ffmpeg库YUV转存为JPG

    热门讨论 2013-11-04 16:05:30
    用ffmpeg库函数,将解码得到的YUV转存成jpg图片 不是是使用任何ffmpeg以外的库。
  • Python+OpenCV实现png透明图像叠加在jpg图像上

    千次阅读 多人点赞 2021-03-16 16:16:13
    【问题发现】本人在图像处理项目过程中,经常需要将一幅jpg图像叠加到另一幅背景jpg图像上,来实现一些特定的需求。例如我们经常在抖音中看到一些视频特效的叠加效果,猫耳朵等等特效在背景人脸图像上的叠加。我们...

    【问题发现】本人在图像处理项目过程中,经常需要将一幅jpg图像叠加到另一幅背景jpg图像上,来实现一些特定的需求。例如我们经常在抖音中看到一些视频特效的叠加效果,猫耳朵等等特效在背景人脸图像上的叠加。我们利用Python+OpenCV的方式可以很简单的实现jpg图像之间的叠加,但实际项目中更多需要png透明图像在jpg图像上叠加。这种情况下,仍然适用传统的jpg叠加方式,就会出现原本透明的png图像,叠加后直接变为不透明的jpg图像,达不到我们想要的效果。本篇将主要讲解如何利用Python+OpenCV来实现png透明图像叠加到jpg图像上的方法。

    【解决方案】

    1. 如何正常读取4通道的png图像

    为了解决上述问题,首先我们要弄清楚jpg图像和png图像的区别。我们利用Python+OpenCV方式读取的jpg图像为BGR三通道图像,每一个通道代表了一个色彩描述。而png图像则是四通道图像,除了BGR通道外,还有一个A通道,即Alpha通道,描述了图像的透明程度。但需要注意的是:OpenCV提供的图像读取函数cv2.imread(),在默认情况下读取png图像会自动忽略Alpha通道,即png图像直接变为jpg图像。因此,在读入png图像时,我们需要特别注意。

    import cv2
    
    img_path = 'imgs/demo.png' # 设置透明png图像路径
    
    #img_bgr0 = cv2.imread(img_path, cv2.IMREAD_COLOR) # 默认读取BGR彩色图像,忽略Alpha通道
    #img_bgr1 = cv2.imread(img_path) # 默认读取方式,结果同上
    
    #img_gray = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE) # 读入灰度图像
    
    img_png = cv2.imread(img_path, cv2.IMREAD_UNCHANGED) # 正常读入图像,并保留其通道数不变,png图像为4通道,jpg图像为3通道

    2. 为jpg图像增加Alpha通道

    首先,传统jpg图像之间的叠加是在背景图像上确定一块与待叠加图像尺寸相同的区域进行叠加。例如,50*50*3尺寸的jpg图像要叠加到100*100*3尺寸的jpg背景图像上,需要在背景图像上指定50*50*3的区域来放入前者。代码如下:

    import numpy as np 
    import cv2
    
    # 创建一张100*100*3尺寸的黑色背景图像
    img_bg = np.zeros((100,100), dtype=np.uint8)
    img_bg = cv2.cvtColor(img_bg, cv2.COLOR_GRAY2BGR)
    
    # 创建一张50*50*3尺寸的白色待叠加图像
    img_white = np.ones((50,50), dtype=np.uint8)
    img_white = cv2.cvtColor(img_white, cv2.COLOR_GRAY2BGR)
    
    # 将白色图像叠加到黑色背景背景图像上,叠加位置为左上角
    img_bg[:50,:50,:] = img_white
    
    # 显示图像
    cv2.imshow('result', img_bg) # 显示叠加后的结果图像
    
    if cv2.waitKey(0) & 0xFF == 27:
        cv2.destroyAllWindows()

    jpg图像叠加时,它们的通道数都为3,不会出现问题。但当png4通道图像往jpg3通道图像上叠加时,则会出现图像尺寸不匹配的问题。例如,在100*100*3尺寸的jpg图像上无法划定出50*50*4的空间来让png图像放入。为了解决这一问题,我们需要为jpg图像增加Alpha通道,可以理解成我们来增大jpg图像的尺寸,使它足够大能容下png图像。代码如下:

    import cv2 
    import numpy as np
    
    def add_alpha_channel(img):
        """ 为jpg图像添加alpha通道 """
    
        b_channel, g_channel, r_channel = cv2.split(img) # 剥离jpg图像通道
        alpha_channel = np.ones(b_channel.shape, dtype=b_channel.dtype) * 255 # 创建Alpha通道
    
        img_new = cv2.merge((b_channel, g_channel, r_channel, alpha_channel)) # 融合通道
        return img_new

    3. 将png透明图像叠加到jpg图像上

    在叠加图像前,我们需要确定在背景图像的哪个位置进行叠加,这里我们在背景图像中设2个坐标点:(x1, y1) 和 (x2, y2) 分别表示叠加位置的左上角坐标和右下角坐标。

    图像叠加代码如下:

    img_bg[y2:y1,x1:x2] = img_white

    OK,了解了基础原理后,我们现在开始进行正式的图像叠加,代码如下:

    def merge_img(jpg_img, png_img, y1, y2, x1, x2):
        """ 将png透明图像与jpg图像叠加 
            y1,y2,x1,x2为叠加位置坐标值
        """
        
        # 判断jpg图像是否已经为4通道
        if jpg_img.shape[2] == 3:
            jpg_img = add_alpha_channel(jpg_img)
        
        '''
        当叠加图像时,可能因为叠加位置设置不当,导致png图像的边界超过背景jpg图像,而程序报错
        这里设定一系列叠加位置的限制,可以满足png图像超出jpg图像范围时,依然可以正常叠加
        '''
        yy1 = 0
        yy2 = png_img.shape[0]
        xx1 = 0
        xx2 = png_img.shape[1]
    
        if x1 < 0:
            xx1 = -x1
            x1 = 0
        if y1 < 0:
            yy1 = - y1
            y1 = 0
        if x2 > jpg_img.shape[1]:
            xx2 = png_img.shape[1] - (x2 - jpg_img.shape[1])
            x2 = jpg_img.shape[1]
        if y2 > jpg_img.shape[0]:
            yy2 = png_img.shape[0] - (y2 - jpg_img.shape[0])
            y2 = jpg_img.shape[0]
    
        # 获取要覆盖图像的alpha值,将像素值除以255,使值保持在0-1之间
        alpha_png = png_img[yy1:yy2,xx1:xx2,3] / 255.0
        alpha_jpg = 1 - alpha_png
        
        # 开始叠加
        for c in range(0,3):
            jpg_img[y1:y2, x1:x2, c] = ((alpha_jpg*jpg_img[y1:y2,x1:x2,c]) + (alpha_png*png_img[yy1:yy2,xx1:xx2,c]))
    
        return jpg_img

    这里我讲上述所有代码进行整合,png图像叠加到jpg图像上的完整代码如下:

    import cv2
    import numpy as np
    
    def add_alpha_channel(img):
        """ 为jpg图像添加alpha通道 """
    
        b_channel, g_channel, r_channel = cv2.split(img) # 剥离jpg图像通道
        alpha_channel = np.ones(b_channel.shape, dtype=b_channel.dtype) * 255 # 创建Alpha通道
    
        img_new = cv2.merge((b_channel, g_channel, r_channel, alpha_channel)) # 融合通道
        return img_new
    
    def merge_img(jpg_img, png_img, y1, y2, x1, x2):
        """ 将png透明图像与jpg图像叠加 
            y1,y2,x1,x2为叠加位置坐标值
        """
        
        # 判断jpg图像是否已经为4通道
        if jpg_img.shape[2] == 3:
            jpg_img = add_alpha_channel(jpg_img)
        
        '''
        当叠加图像时,可能因为叠加位置设置不当,导致png图像的边界超过背景jpg图像,而程序报错
        这里设定一系列叠加位置的限制,可以满足png图像超出jpg图像范围时,依然可以正常叠加
        '''
        yy1 = 0
        yy2 = png_img.shape[0]
        xx1 = 0
        xx2 = png_img.shape[1]
    
        if x1 < 0:
            xx1 = -x1
            x1 = 0
        if y1 < 0:
            yy1 = - y1
            y1 = 0
        if x2 > jpg_img.shape[1]:
            xx2 = png_img.shape[1] - (x2 - jpg_img.shape[1])
            x2 = jpg_img.shape[1]
        if y2 > jpg_img.shape[0]:
            yy2 = png_img.shape[0] - (y2 - jpg_img.shape[0])
            y2 = jpg_img.shape[0]
    
        # 获取要覆盖图像的alpha值,将像素值除以255,使值保持在0-1之间
        alpha_png = png_img[yy1:yy2,xx1:xx2,3] / 255.0
        alpha_jpg = 1 - alpha_png
        
        # 开始叠加
        for c in range(0,3):
            jpg_img[y1:y2, x1:x2, c] = ((alpha_jpg*jpg_img[y1:y2,x1:x2,c]) + (alpha_png*png_img[yy1:yy2,xx1:xx2,c]))
    
        return jpg_img
    
    if __name__ == '__main__':
        # 定义图像路径
        img_jpg_path = 'imgs/0.jpg' # 读者可自行修改文件路径
        img_png_path = 'imgs/0.png' # 读者可自行修改文件路径
    
        # 读取图像
        img_jpg = cv2.imread(img_jpg_path, cv2.IMREAD_UNCHANGED)
        img_png = cv2.imread(img_png_path, cv2.IMREAD_UNCHANGED)
    
        # 设置叠加位置坐标
        x1 = 560
        y1 = 180
        x2 = x1 + img_png.shape[1]
        y2 = y1 + img_png.shape[0]
    
        # 开始叠加
        res_img = merge_img(img_jpg, img_png, y1, y2, x1, x2)
    
        # 显示结果图像
        cv2.imshow('result', res_img)
    
        # 保存结果图像,读者可自行修改文件路径
        cv2.imwrite('imgs/res.jpg', res_img)
    
        # 定义程序退出方式:鼠标点击显示图像的窗口后,按ESC键即可退出程序
        if cv2.waitKey(0) & 0xFF == 27:
            cv2.destroyAllWindows()

    【结果显示】

    用我家主子的照片来试一下效果啦~

    最后,希望本文能帮助到热爱图像处理的小伙伴们~

     

    展开全文
  • jpg图片转换成十六进制字符文件

    热门讨论 2013-01-19 23:20:21
    该程序主要用于将jpg图片的自己流转换为十六进制字符串 输入文件为in.jpg 输出文件为in.txt
  • jpg 图片读取与显示

    热门讨论 2012-05-18 17:03:25
    采用C语言处理图片,到达读取图片,重命名 、返回路径。
  • PDF转JPG完整版(内含注册码)

    热门讨论 2012-11-12 17:27:32
    PDF转JPG格式完整版,内含注册码,能够成功将PDF文档转为JPG图片格式
  • JPG转CAD格式转换工具

    热门讨论 2011-12-21 13:18:20
    好用的jpg转cad格式转换工具,自从有了它,神马都是浮云
  • pb最好用的bmp图片转jpg图片dll(ImageUtils.dll) PB 函数声明 function Boolean Bmp2Jpgzzp(ref string bmp_name,ref string jpg_name) library 'ImageUtils.dll' alias for 'Bmp2Jpg' function Boolean Jpg2...
  • jpg 和 png

    千次阅读 2021-06-13 20:51:10
    jpg格式的图像,和png格式的图像,最本质的区别的是:jpg图像没有透明的背景,而png图像可以保留透明的背景,如下图: 对于机器学习的影响: 假如使用jpg格式的训练集训练网络,使用png.

    目录

     

    区别一:

    区别2:

    对于机器学习的影响:


    区别一:

    在图像的大小和清晰度上的区别

    JPG在图片压缩方面有巨大优势,但采用有损压缩,图片质量有损失。一张图片多次上传下载后,图片逐渐会失真

    png图片比jpg图片占用空间大,可以进行无损压缩,所以png图片相对清晰度高。

    区别2:

    jpg格式的图像,和png格式的图像,最本质的区别的是jpg图像没有透明的背景,而png图像可以保留透明的背景,如下图:

    对于机器学习的影响:

    假如使用jpg格式的训练集训练网络,使用png格式的进行测试,是否会对性能产生影响?个人感觉取决于rgb三通道的取值,对同一张图片改变其存储格式,对它的rgb值是否会产生影响呢?

    答:看你在不在乎细微的影响了。png是无损,jpg是有损的。我记得有一个文章说有个大牛准备做公开预训练模型,结果复现出来的模型总是和原论文的不一样。找了几个月才发现是图像格式不同导致的精度不同。

    jpg和png的有无损区别,你分别保存一下二值图(0,255)再读取回来看像素值就发现了。


    不同格式的图片(png、jpg)对卷积神经网络的训练、测试有没有影响? - 知乎

    png 与jpg的区别_xinglei200909931的博客-CSDN博客

    同等大小下jpg和png的区别_百度知道

    展开全文
  • png、jpg图片格式的区别及

    万次阅读 多人点赞 2019-04-15 11:17:08
    同样用PNG8和JPG进行了保存,可以发现当用PNG8保存时不仅保证了图像的质量且图像文件的大小仅有8.3K,而当用JPG100%保存时文件大小则增加到44.2K,如果不经放大可能还看不出具体的差异,但实际和前面一样也会出现...

    为什么想整理这方面的类容,我觉得就像油画家要了解他的颜料和画布、雕塑家要了解他的石材一样,作为网页设计师也应该对图片格式的特性有一定了解,这样才能更好的表达你的创意和想法。

    除此之外,我们在平时工作中也会遇到许多与图片格式相关的问题。比如设计师会奇怪为什么有些页面的产出物总是没法达到设计稿那样的品质和效果,什么样的设 计才更适合Web页面;页面重构师和前端工程师则想知道在切图的时候应采用什么图片格式、如何进行参数设置才能达到品质和性能的最优化。

    有时候我们可能会因为一张格式不正确的图片而导致设计品质的下降以及页面性能的降低。了解图片格式的特性就是为解答这些困惑从而让我们设计的产品更好、更快。

    本文主要包括以下几方面内容:

    1. 1、基本概念
    2. 2、实际应用
    3. 3、思考与实践
    4. 4、附录-Photoshop中各种参数的含义及设置技巧

    1、基本概念

    要了解图片格式的特性,首先得从一些基本概念开始。这部分内容读起来可能会比较枯燥,但如果你耐着性子读完它,相信会获益匪浅。

     

    矢量图与位图

    矢量图-完美的几何图形

    矢量图是 通过组成图形的一些基本元素,如点、线、面,边框,填充色等信息通过计算的方式来显示图形的。就好比我们在几何学里面描述一个圆可以通过它的圆心位置和半 径来描述,当然还可以通过边框的粗细、颜色以及填充的颜色等数据去描述它的样式。而电脑在显示的时候则通过这些数据去绘制出我们定义的图像。

    矢量图的优点在于文件相对较小,并且放大缩小不会失真。缺点则是这些完美的几何图形很难表现自然度高的写实图像。

    需要强调说明的是我们在web页面上所使用的图像都是位图,即便有些称为矢量图形(如矢量icon等)也是指通过矢量工具进行绘制然后再转成位图格式在web上使用的(区别于像素绘制的图形)。

    位图-神奇的拼图

    位图又叫 像素图或栅格图,它是通过记录图像中每一个点的颜色、深度、透明度等信息来存储和显示图像。一张位图就好比一幅大的拼图,只不过每个拼块都是一个纯色的像 素点,当我们把这些不同颜色的像素点按照一定规律排列在一起的时候,就形成了我们所看到的图像。所以当我们放大一幅像素图时,能看到这些拼片一样的像素点 (如下图)。

    位图的优点是利于显示色彩层次丰富的写实图像。缺点则是文件大小较大,放大和缩小图像会失真。

    位图示意

    尽管我们在web页面中所使用的JPG、PNG、GIF格式的图像都是位图,即他们都是通过记录像素点的数据来保存和显示图像,但这些不同格式的图像在记录这些数据时的方式却不一样,这就是涉及到有损压缩无损压缩的区别。

    有损压缩与无损压缩

    有损压缩-你看到的不一定是真实的

    按照我的理解有损压缩就 是在存储图像的时候并不完全真实的记录图像上每个像素点的数据信息,它会根据人眼观察现实世界的特性(人眼对光线的敏感度比对颜色的敏感度要高,生物实验 证明当颜色缺失时人脑会利用与附近最接近的颜色来自动填补缺失的颜色)对图像数据进行处理,去掉那些图像上会被人眼忽略的细节,然后使用附近的颜色通过渐 变或其他形式进行填充。这样既能大大降低图像信息的数据量,又不会影响图像的还原效果。

    有损压缩示意图

    JPG是我们最常见的采用有损压缩对图像信息进行处理的图片格式。JPG在存储图像时会把图像分解成8*8像素的栅格(如上图),然后对每个栅格的数据进 行压缩处理,当我们放大一幅图像的时候,就会发现这些8*8像素栅格中很多细节信息被去除,而通过一些特殊算法用附近的颜色进行填充(为了让大家看得更清 楚我将图像的压缩比率调到很低)。这也是为什么我们用JPG存储图像有时会产生块状模糊的原因。

    无损压缩-最精确的拼图

    相对有损压缩而言无损压缩则 会真实的记录图像上每个像素点的数据信息,但为了压缩图像文件的大小会采取一些特殊的算法。无损压缩的压缩原理是先判断图像上哪些区域的颜色是相同的,哪 些是不同的,然后把这些相同的数据信息进行压缩记录,(例如一片蓝色的天空之需要记录起点和终点的位置就可以了),而把不同的数据另外保存(例如天空上的 白云和渐变等数据)。

    无损压缩示意图

    PNG是我们最常见的一种采用无损压缩的图片格式。无损压缩在存储图像前会先判断图像上哪些地方是相同的哪些地方是不同的,为此需要对图像上所有出现的颜色进行索引(如上图),我们把称这些颜色称为索引色。索引色就好比绘制这幅图像的“调色版”,PNG在显示图像的时候则会用“调色版”上的这些颜色去填充相应的位置。

    这里大家可能会疑惑既然PNG采用的是无损压缩为什么我们保存的PNG格式图片还会有失真呢?这是因为无损压缩只是说它的压缩方式会尽可能真实的还原图 像,但从它的压缩原理我们可以知道它是通过索引图像上相同区域的颜色进行压缩和还原的,这就意味着只有在图像上出现的颜色数量小于我们可以保存的颜色数量 时,我们才能真实的记录和还原图像,否则就会丢失一些图像信息(PNG8最多只能索引256种颜色,所以对于颜色较多的图像不能真实还原;PNG24则可 以保存1600多万种颜色,基本能够真实还原我们人类肉眼所可以分别的所有颜色;PNG格式最多可以保存48位颜色通道)。而对于有损压缩来说,不管图像 上的颜色多少,都会损失图像信息。

    JPG和PNG

    关于JPG和PNG的基本信息介绍这里就不赘述了,有兴趣详细了解的同学可以去这里:
    什么是JPG什么是PNG。另外这里我们也不对GIF进行讨论,是因为PNG就是为取代GIF而生的,而且PNG的压缩算法也要优于GIF,所以只要不是需要动画效果的地方强烈建议都采用PNG格式图片。

    这里我们不妨把JPG和PNG的一些特性进行一个简单对比:

    格式压缩模式交错支持透明支持动画支持
    JPG有损压缩支持不支持不支持
    PNG无损压缩支持支持不支持

    JPG的特性

    1. 1、支持摄影图像或写实图像的高级压缩,并且可利用压缩比例控制图像文件大小。
    2. 2、有损压缩会使图像数据质量下降,并且在编辑和重新保存JPG格式图像时,这种下降损失会累积。
    3. 3、JPG不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。

    PNG的特性

    1. 1、能在保证最不失真的情况下尽可能压缩图像文件的大小。
    2. 2、PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。
    3. 3、对于需要高保真的较复杂的图像,PNG虽然能无损压缩,但图片文件较大,不适合应用在Web页面上。

    PNG8与PNG24

    提到PNG格式就不得不提到PNG8和PNG24,这种叫法并非官方定义,不过由于普遍使用已经被大家广泛接受了。通过前面的介绍我们知道PNG采用无损压缩是通过索引色去存储和还原图像的,PNG8和PNG24后面的数字则是代表这种PNG格式最多可以索引和存储的颜色值。”8″代表2的8次方也就是256色,而24则代表2的24次方大概有1600多万色。

    不仅如此,PNG8还支持1位的布尔透明通道,所谓布尔透明指的是要么完全透明要么完全不透明。而PNG24则支持8位(256阶)的alpha通道透明,也就是说可以存储从完全透明到完全不透明一共256个层级的透明度(即所谓的半透明)。

    格式最高支持色彩通道索引色编辑支持透明支持
    PNG8256色支持支持布尔透明
    PNG24约1600万色不支持支持8位(256阶)alpha透明

    可能通过以上特性的对比大家还不能很直观的理解在实际应用中到底因该选择什么格式的图片文件,我们不妨结合上面的基本概念通过几个例子去给大家说明。

    2、实际应用

    什么时候应该使用PNG

    示例1

    下图是淘宝网最常见的一个图片即“立刻购买”按钮,这里我尝试用JPG和PNG8格式分别进行保存,可以看到保存的结果有两个值得注意的地方:

    1. 1、JPG保存的文件大小是PNG保存的文件大小的2倍
    2. 2、JPG不仅文件更大并且还出现了噪点(如图中红色方框标注的)

    适用PNG的场景1

    那么是什么原因造成这样的差异呢?

    首先我们可以看出“立刻购买”这个按钮是在photoshop中用矢量工具绘制出来的,其渐变填充是非常规则的线性渐变,文字颜色和描边等都是采用纯色,所以这个图像所包含的色彩信息非常有限。根据前面我们介绍的无损压缩的特性,当用PNG存储这个图像时,只需要保存很少的色彩信息就可以真实还原这个图像。而对于JPG格式来说大小主要决定于图像的颜色层次,所以在这种颜色较少但对比强烈的情况下,反而不能很好的压缩文件大小。

    另外根据有损压缩的压缩算法JPG会在图像中通过渐变或其他方式填充一些被删除的数据信息来对图像进行压缩,图中红色和白色的地方由于色差较大,JPG在压缩过程中就会填充一些额外杂色进去,反而影响的图像的质量。这也是为什么JPG不利于存储大块颜色相近区域以及亮度差异十分明显的图像的原因。

    示例2

    我们再来看另外一个应用场景,下图是在淘宝彩票页面使用的一个Banner图像。同样用PNG8和JPG进行了保存,可以发现当用PNG8保存时不仅保证了图像的质量且图像文件的大小仅有8.3K,而当用JPG100%保存时文件大小则增加到44.2K,如果不经放大可能还看不出具体的差异,但实际和前面一样也会出现不必要的噪点。如果我们要达到PNG8的压缩率采用JPG45%进行保存,则图像会出现较严重的失真。

    PNG的应用场景2

    由此我们可以得出结论,具备以下条件的图像更适合用PNG8格式进行存储:

    1. 1、图像上颜色较少,并且主要以纯色或者平滑的渐变色进行填充。
    2. 2、具备较大亮度差异以及强烈对比的简单图像(如“立刻购买”按钮中的背景和文字)。

    根据经验具备上述条件的图像一般是使用photoshop或其他软件中的矢量工具进行绘制然后再保存成位图的图像。

    什么时候应该使用JPG

    示例1

    从JPG的特性介绍我们知道JPG更适合用来存储摄影或写实图像,所以我们不妨先拿一张摄影作品做尝试。

    下图是一副巴士车的照片,我们尝试用JPG 60%(左上)、PNG8 256色 无仿色(右上)、PNG8256色 扩散仿色(左下)、PNG32(右下)分别进行了存储。可以看出当用JPG存储图像时不仅能够达到最大的压缩率,也能尽量保证原图的还原效果。而采用PNG8进行保存时图像文件大小更大,失真也较严重。只有在PNG24的格式下才能保证品质,然而文件大小却比JPG要大很多。

    产生这种结果的原因也与JPG和PNG各自的压缩算法有关。

    对于摄影或者写实作品,由于受环境光线的影响,图像上的色彩层次十分丰富。比如巴士车上的红色区域由于反光、阴影以及透视效果会形成明暗、深浅各异的区域,如果用PNG去保存,则需要不同明暗度的红色去存储这个区域。对于整张图片来说,PNG8的256色无法完全索引图像上出现的所有颜色,于是在存储时就会丢失许多颜色而产生失真。如果要保证图像的效果,则需要色彩范围更广的PNG24进行存储,相应的文件大小也会增加。

    而JPG的压缩算法则更利于对真实世界中这些复杂的色彩变化进行压缩处理,从而在尽量压缩文件大小的情况下比较好的还原图像的视觉效果。

    适用JPG的场景1-1
    适用JPG的场景1-2
    适用JPG的场景1-3

    示例2

    那么是不是只有在存储照片的时候才需要用到JPG呢?我们不妨来看另外一个例子。

    下图是最近比较火爆的某微博页面,在这里我们可以选择不同的风格,每种风格都会有一个非常有特色的背景图片。我们尝试用不同图片格式对背景进行保存时可以发现:当用JPG进行保存时(直接背景另存为)文件大小仅36.3K;而用PNG8256色无仿色去保存时大小增加到57.7K,不仅如此由于颜色的缺失在图像上还出现了一些带锯齿的色块;为了降低这些色块对图像质量的影响我们对PNG8增加了扩散仿色的效果,此时文件大小达到了156.3K;而当采用PNG24完全不失真的保存时文件大小是231.9K。

    尽管这幅背景图也是通过photoshop制作,但我们可以发现由于在图像上采用了很多的真实素材(比如白云、蚂蚁、绿叶等),而这些真实素材和摄影图像一样也会存在非常丰富的色彩层次,所以也不适合用PNG格式进行保存。这个时候我们就应该采用JPG格式。

    适用JPG的场景2-1
    适用JPG的场景2-2

    由此我们可以得出结论:对于写实的摄影图像或是颜色层次非常丰富的图像采用JPG的图片格式保存一般能达到最佳的压缩效果。

    根据经验我们在页面中使用的商品图片、采用人像或者实物素材制作的广告Banner等图像更适合采用JPG的图片格式保存。

    总结

    由此可见在存储图像时采用JPG还是PNG主要依据图像上的色彩层次和颜色数量进行选择。一般层次丰富颜色较多的图像采用JPG存储,而颜色简单对比强烈的则需要采用PNG。但也会有一些特殊情况,例如有些图像尽管色彩层次丰富,但由于图片尺寸较小,上面包含的颜色数量有限时,也可以尝试用PNG进行存储。而有些矢量工具绘制的图像由于采用较多的滤镜特效也会形成丰富的色彩层次,这个时候就需要采用JPG进行存储了。

    另外还有一个原则就是用于页面结构的基本视觉元素,如容器的背景、按钮、导航的背景等应该尽量用PNG格式进行存储,这样才能更好的保证设计品质。而其他一些内容元素,如广告Banner、商品图片等对质量要求不是特别苛刻的,则可以用JPG去进行存储从而降低文件大小。

    3、思考与实践

    什么样的设计更适合web页面?

    慎用较“重”的视觉设计元素

    Web2.0时代网页设计的一大趋势就是越来越“轻”。除了对那些高光和圆角效果的审美疲劳之外,设计师们也开始意识到好的设计应该是内容与形式的完美结合,而非形式的堆砌。所以设计师在应用那些较“重”的视觉效果时,一定要想清楚这样做的目的和意义,以及是否与产品的特点和受众的气质相契合。

    “轻量“设计一个比较典型的例子就是国内某知名网站,几乎没有采用任何需要图片的视觉元素,而是通过简单的CSS样式去实现,这样不仅能够突出内容,更能提升页面的访问速度。所以我十分强烈的建议视觉设计师也掌握一定的html和css知识(尤其是CSS3实现了很多过去需要图片才能实现的效果,例如圆角和渐变),这样在做设计的时候能够全面的去考虑产品效果。

    轻量设计示例

    下面这个电子商务网站则采用过多无意义的视觉元素堆砌,不仅没有实现很好的设计效果,反而由于需要太多的图片元素而影响了页面的性能。

    重度设计

    如果由于产品需要在设计中不得不使用较”重“的视觉元素,我们也可以根据图片格式的特点选择适当的表现形式以达到更好的效果。

    例如在下面这个例子中,第一个Banner应用了更适合PNG格式的设计风格(较多纯色和简单渐变的应用)不仅能达到热烈、突出的视觉效果,在保证图片质量的同时也更好的压缩了文件大小;而第二个Banner由于应用了过于复杂的渐变色和强烈对比,并且在局部区域采用太多的高光和阴影效果,导致图片的色彩层次过多,不论采用PNG还是JPG格式保存都无法实现图像质量和文件大小的最优化。

    设计风格选择

    当然举这个例子并不是要设计师在做设计的时候过分考虑页面性能问题,而是要清楚不同设计形式的效果和实现成本,在设计过程中多问自己为什么要这样做?

    内容和形式的分离

    对于一些比较强调视觉效果的特殊产品,比如活动推广页面或MiniSite。我们也可以利用图片格式和一些前端知识对设计进行优化,比较常用的一种设计方法就是内容和形式的分离。

    如下面一些国外比较流行的设计风格,以及前面提到的微博网站,都是通过大幅的背景图去进行意境的传达和气氛的渲染。这样做的一个好处就是能把需要用到图片的视觉元素进行集中的压缩优化,同时又不会由于加载太慢而影响用户的访问速度(前端实现时一般会用相近的背景色先进行填充,然后在逐步显示背景图)。

    内容和形式分离1
    内容和形式分离2
    适用JPG的场景2-1

    个人认为好的视觉设计最重要是意境传达和气氛渲染,使用高光、阴影等滤镜效果的目的也仅仅是为了达到质感上的统一从而更好的去传达意境和渲染气氛,所以切忌为了质感而质感。即便是为了体现设计品质也不一定非要使用炫丽的滤镜,相较而言优美的布局和精巧的结构才是体现品质的关键!

    通过较小的视觉牺牲换取较大的性能提升

    有时候为了提升页面的加载速度达到更好的用户体验,不得不对设计进行优化。这个时候利用我们对图片格式知识掌握就可以更有目的性的去进行优化。

    例如下图是淘宝“双十一”大促活动的一个页头设计,由于页面访问量非常大并且要使用较多的商品图片,不得不对页头设计进行优化以提升性能。这个时候我们就可以去掉一些不太重要的高光、渐变和阴影效果,从而大大降低文件大小。

    设计优化

    我们还可以做些什么?

    Sprite图片二次优化

    由于目前国内很多互联网公司没有页面重构师这一职位,所以页面切图和静态代码实现基本都是前端工程师去完成。为提高页面性能目前普遍采用的实现方式是将与页面结构相关的需要用到图片的视觉元素集中在一个PNG图片上,然后通过CSS样式将其应用到页面中,我们称这个图片为Sprite图片。由于这个图片上经常要集中较多的视觉元素,在用PNG格式存储时难免会产生失真而影响图片质量。这个时候就需要视觉设计师帮助前端开发工程师对Sprite图片进行优化,这样做的好处是不仅能提升图片质量,还能达到减小文件大小的效果,可谓一举两得。

    下图是一个优化前的Sprite图片,由于视觉元素过多PNG8无法真实保存所有的颜色信息,于是便会产生颜色的缺失和杂色的产生(如局部放大图所示)。

    Sprite优化1

    在前端工程师完成页面的静态代码之后,视觉设计师可以将定位好的Sprite图片进行像素级的优化,去掉不必要的杂色,并且用已存在的索引色对缺失的地方进行补充,这样不仅能压缩文件大小,还能提升设计品质。

    Sprite优化2

    Sprite图片的优化方式有很多种,比如通过索引色排序进行颜色的删减和替换,或是直接通过像素描绘进行优化。设计师可以根据具体的场景进行选择和处理。

    以上设计和优化的方法只是我在工作中一些经验的积累和总结,个人感觉每一个点展开来都有很多值得研究和讨论的地方,限于篇幅有限不能继续深入。关于图片优化的高级技巧有两篇比较经典的文章推荐给大家:Clever PNG Optimization TechniquesClever JPEG Optimization Techniques

    4、附录-Photoshop中各种参数的含义及设置技巧

    PNG8的参数设置

    PNG8参数设置

    减低颜色深度算法与颜色

    指定用于生成颜色查找表的方法,以及想要在颜色查找表中使用的颜色数量。可以选择以下减低颜色深度算法之一:

    1. 1、可感知:通过为人眼比较灵敏的颜色赋以优先权来创建自定颜色表。
    2. 2、可选择:创建一个颜色表,此表与”可感知”颜色表类似,但对大范围的颜色区域和保留Web 颜色有利。此颜色表通常会生成具有最大颜色完整性的图像。“可选择”是默认选项。
    3. 3、随样性:通过从图像的主要色谱中提取色样来创建自定颜色表。例如,只包含绿色和蓝色的图像产生主要由绿色和蓝色构成的颜色表。大多数图像的颜色集中在色谱的特定区域。
    4. 4、受限(Web):使用 Windows 和 Mac OS 8 位(256 色)调板通用的标准 216色颜色表。该选项确保当使用 8 位颜色显示图像时,不会对颜色应用浏览器仿色。(该调板也称为 Web 安全调板。) 使用 Web调板可能会创建较大的文件,因此,只有当避免浏览器仿色是优先考虑的因素时,才建议使用该选项。
    5. 5、自定:使用用户创建或修改的调色板。如果打开现有的GIF 或 PNG-8 文件,它将具有自定调色板。使用”存储为 Web和设备所用格式”对话框中的”颜色表”调板可自定颜色查找表。
    6. 6、黑白、灰度、Mac OS、Windows使用一组调色板。

    建议:一般情况下默认选择“可选择”项即可。

    减低颜色深度算法设置

    仿色方法和仿色

    确定应用程序仿色的方法和数量。”仿色”是指模拟计算机的颜色显示系统中未提供的颜色的方法。

    较高的仿色百分比使图像中出现更多的颜色和更多的细节,但同时也会增大文件大小。为了获得最佳压缩比,请使用可提供所需颜色细节的最低百分比的仿色。

    若图像所包含的颜色主要是纯色,则在不应用仿色时通常也能正常显示。包含连续色调(尤其是颜色渐变)的图像,可能需要仿色以防止出现颜色条带现象。

    可以选择以下几种仿色方法之一:

    1. 1、扩散:应用与”图案”仿色相比通常不太明显的随机图案。仿色效果在相邻像素间扩散。
    2. 2、图案:使用类似半调的方形图案模拟颜色表中没有的任何颜色。
    3. 3、杂色:应用与”扩散”仿色方法相似的随机图案,但不在相邻像素间扩散图案。使用”杂色”仿色方法时不会出现接缝。

    建议:一般只在图片颜色过多产生失真的情况下才需要选择仿色。建议选择扩散仿色,可以适当调节仿色的百分比以达到最佳的效果。仿色度越高文件大小也越大。

    仿色设置

    透明度和杂边

    确定如何优化图像中的透明像素。

    1. 1、要使完全透明的像素透明并将部分透明的像素与一种颜色相混合,请选择”透明度”,然后选择一种杂边颜色。
    2. 2、要使用一种颜色填充完全透明的像素并将部分透明的像素与同一种颜色相混合,请选择一种杂边颜色,然后取消选择”透明度”。
    3. 3、要选择杂边颜色,请单击”杂边”色板,然后在拾色器中选择一种颜色。或者,也可以从”杂边”菜单中选择一个选项:”吸管”(使用吸管样本框中的颜色)、”前景色”、”背景色”、”白色”、”黑色”或”其它”(使用拾色器)。

    建议:强烈建议由视觉设计师根据实际应用场景在保存之前就处理好透明图像的背景。

    透明度杂边设置

    交错

    PNG、GIF这两种图像格式都提供了一种功能,让图像能够更快地显示。图像可以以一种特殊方式存储,显示时先大概显示图像的草图,当文件全部下载后再填充细节。这起到一种很有意义的心理效果,因为这样使人们有东西可看,而不必坐着干等大型图像慢慢显示在屏幕上。

    建议:对于尺寸和文件大小相对较大的图片建议勾选此项。

    JPG的参数设置

    JPG参数设置

    品质

    从”品质级别”菜单中选取一个选项,或者在”品质”文本框中指定一个值。”品质”设置越高,压缩算法保留的细节越多。但是,使用高”品质”设置比使用低”品质”设置生成的文件大。查看几种品质设置下的优化图像,确定品质和文件大小之间的最佳平衡点。

    品质设置技巧

    1. 1、不要存100%品质的JPG格式图片。因为100%并不一定是最高的品质,而是一个优化算法的极限值,所以会增加不必要的文件大小。建议存储95%品质的图片就可以最大限度的降低失真。
    2. 2、谨慎使用50%品质以下的压缩率。使用50%以下品质存储时会采用额外的压缩算法而导致图片失真更严重,尤其是对于有高对比度的图片。

    优化

    选择”优化”创建文件大小稍小的增强型 JPEG。建议使用”优化 JPEG”格式以获得最大文件压缩量;但是,一些较旧的浏览器不支持此特性。

    建议:建议勾选此项,目前基本已经不存在不支持改功能的浏览器。

    连续

    选择”连续”创建在 Web 浏览器中连续显示的图像。图像将显示为一系列的叠加,使查看者在整个图像下载完毕之前,能够看到图像的低分辨率版本。连续 JPEG 需要更多的内存用于查看,一些浏览器不支持该选项。

    建议:勾选此项在某些情况下可压缩文件大小(图片大小大于10k时),某些情况下会增大文件大小,建议在保存是根据实际情况决定。不过IE6及更早版本的IE浏览器不支持JPG连续显示,而是在图片完全加载后一次成像,用户体验上可能还不如不使用连续的逐步成像要好,所以建议慎选此项。

    模糊

    指定应用于图像的模糊量。”模糊”选项应用与”高斯模糊”滤镜相同的效果,并允许进一步压缩文件以获得更小的文件大小。建议使用 0.1 到0.5 之间的设置。

    ICC 配置文件

    选择”ICC 配置文件”将图片的 ICC 配置文件与文件保留在一起。ICC配置文件由某些浏览器用于色彩校正。(请参阅Photoshop中设置色彩管理。)

    杂边

    指定原稿图像中透明像素的填充色:点按”杂边”色板,然后在拾色器中选择一种颜色。从”杂边”菜单中选取选项。原稿图像中完全透明的像素由选中的颜色填充,原稿图像中部分透明的像素与选中的颜色相混合。

     

    转载自:https://blog.csdn.net/minggeqingchun/article/details/78748550

    展开全文
  • 图片格式转换(如bmp转jpg)的matlab实现。
  • BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点

    万次阅读 多人点赞 2019-10-02 20:26:51
    一张图片可以储存为多种格式,为什么有的几十KB,有的几百MB,有...在项目开发的过程中经常会读取或保存图像文件,不同类型的图像特点不同,适用的范围也不同,简要介绍BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点。

    目录

    1、BMP格式图像

    2、GIF格式图像

    3、TIFF格式图像

    4、PNG格式图像 

    5、JPG格式图像  

    6、SVG格式图像  

    7、总结

    7.1、有损vs无损

    7.2、索引色vs直接色

    7.3、点阵图vs矢量图

    7.4、总结


    一张图片可以储存为多种格式,为什么有的几十KB,有的几百MB,有的静止不动,有的是好几个画面循环播放?在项目开发的过程中经常会读取或保存图像文件,不同类型的图像特点不同,适用的范围也不同,简要介绍BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点。

    1、BMP格式图像

    BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点是占用磁盘空间过大。所以,目前BMP在单机上比较流行。

    BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式。Windows系统内部各图像绘制操作都是以BMP为基础的。BMP位图文件默认的文件拓展名是BMP或者bmp(有时它也会以.DIB或.RLE作扩展名)

    虽然同时支持索引色和直接色是一个优点,但是太大的文件格式格式导致它几乎没有用武之地,现在除了在Windows操作系统中还比较常见之外,我们几乎看不到它。在同样的图片质量下,BMP格式的图片文件大小是GIF格式的很多倍。

    2、GIF格式图像

    GIF是Graphics Interchange Format的简写,它是图形转换格式,采用LZW压缩算法进行编码,用于以超文本标志语言(Hypertext Markup Language)方式显示索引彩色图像,在因特网和其他在线服务系统上得到广泛应用。GIF是一种公用的图像文件格式标准,版权归Compu Serve公司所有。

    GIF是无损的,采用GIF格式保存图片不会降低图片质量。但得益于数据的压缩,GIF格式的图片,其文件大小要远小于BMP格式的图片。文件小,是GIF格式的优点,同时,GIF格式还具有支持动画以及透明的优点。但是GIF格式仅支持8Bit的索引色,即在整个图片中,只能存在256种不同的颜色。

    GIF可以被PC和Mactiontosh等多种平台上被支持,适用于对色彩要求不高同时需要文件体积较小的场景,比如企业Logo、线框类的图等。很多人以为GIF指的就是动图,其实GIF不仅有动画GIF,还有静态GIF,因其体积小的特点,现在GIF被广泛的应用在各类网站中。

    3、TIFF格式图像

    TIFF是Tag Image File Format的简写,它是标签图像文件格式,TIFF(Tag Image File Format)图像文件是图形图像处理中常用的格式之一,其图像格式很复杂,但由于它对图像信息的存放灵活多变,可以支持很多色彩系统,而且独立于操作系统,因此得到了广泛应用(拓展性支持Mac跟Windows系统交叉使用)。在各种地理信息系统、摄影测量与遥感等应用中,要求图像具有地理编码信息,例如图像所在的坐标系、比例尺、图像上点的坐标、经纬度、长度单位及角度单位等。

    4、PNG格式图像 

    PNG是Portable Network Graphics的简写,它是便携式网络图形,PNG是一种无损压缩的位图片形格式,其设计目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。PNG压缩比高,生成文件体积小,PNG结合了GIF和TIFF优点,能够支持压缩不失真、透明背景、渐变图像的制作要求,现在广泛应用于PS软件以及互联网之中。

    PNG格式有8位、24位、32位三种形式,其中8位PNG支持两种不同的透明形式(索引透明和alpha透明),24位PNG不支持透明,32位PNG在24位基础上增加了8位透明通道,因此可展现256级透明程度。

    5、JPG格式图像  

    JPG是JPEG(Joint Photographic Experts Group)的简写,它是一种比较常见的图画格式。它的特点是压缩比高,生成文件体积小。

    JPEG格式是目前网络上最流行的图像格式,是可以把文件压缩到最小的格式,JPG图片格式的设计目标,是在不影响人类可分辨的图片质量的前提下,尽可能的压缩文件大小。这意味着JPG去掉了一部分图片的原始信息,也即是进行了有损压缩。JPG的图片的优点,是采用了直接色,得益于更丰富的色彩,JPG非常适合用来存储照片,用来表达更生动的图像效果,比如颜色渐变。

    不过它的缺点也很明显,编辑和重新保存 JPG 文件时,JPG 会混合原始图片数据的质量下降,而且这种下降是累积性的。打个比方,你在微信里面收到被转发很多次的JPG图片会发现图片比原图模糊许多,且泛绿色。

    6、SVG格式图像  

    SVG是Scalable Vector Graphics的简写,它是可缩放矢量图形,SVG图片由直线和曲线以及绘制它们的方法组成。当你放大一个SVG图片的时候,你看到的还是线和曲线,而不会出现像素点。这意味着SVG图片在放大时,不会失真,所以它非常适合用来绘制企业Logo、Icon等。

    SVG作为W3C所推荐的基于XML的开放标准,能够与其他网络技术进行无缝集成,特点是使用XML来描述图片。借助于前几年XML技术的流行,SVG也流行了很多。使用XML的优点是,任何时候你都可以把它当做一个文本文件来对待,也就是说,你可以非常方便的修改SVG图片,你所需要的只需要一个文本编辑器。

    7、总结

    每种类型图像都有不同的指标特点,总结如下:

    7.1、有损vs无损

    图片文件格式有可能会对图片的文件大小进行不同程度的压缩,图片的压缩分为有损压缩和无损压缩两种。

    • 有损压缩。指在压缩文件大小的过程中,损失了一部分图片的信息,也即降低了图片的质量,并且这种损失是不可逆的,我们不可能从有一个有损压缩过的图片中恢复出全来的图片。常见的有损压缩手段,是按照一定的算法将临近的像素点进行合并。
    • 无损压缩。只在压缩文件大小的过程中,图片的质量没有任何损耗。我们任何时候都可以从无损压缩过的图片中恢复出原来的信息。

    7.2、索引色vs直接色

    计算机在表示颜色的时候,有两种形式,一种称作索引颜色(Index Color),一种称作直接颜色(Direct Color)。

    • 索引色。用一个数字来代表(索引)一种颜色,在存储图片的时候,存储一个数字的组合,同时存储数字到图片颜色的映射。这种方式只能存储有限种颜色,通常是256种颜色,对应到计算机系统中,使用一个字节的数字来索引一种颜色。
    • 直接色。使用四个数字来代表一种颜色,这四个数字分别代表这个颜色中红色、绿色、蓝色以及透明度。现在流行的显示设备可以在这四个维度分别支持256种变化,所以直接色可以表示2的32次方种颜色。当然并非所有的直接色都支持这么多种,为压缩空间使用,有可能只有表达红、绿、蓝的三个数字,每个数字也可能不支持256种变化之多。

    7.3、点阵图vs矢量图

    • 点阵图,也叫做位图,像素图。构成点阵图的最小单位是象素,位图就是由象素阵列的排列来实现其显示效果的,每个象素有自己的颜色信息,在对位图图像进行编辑操作的时候,可操作的对象是每个象素,我们可以改变图像的色相、饱和度、明度,从而改变图像的显示效果。点阵图缩放会失真,用最近非常流行的沙画来比喻最恰当不过,当你从远处看的时候,画面细腻多彩,但是当你靠的非常近的时候,你就能看到组成画面的每粒沙子以及每个沙粒的颜色。
    • 矢量图,也叫做向量图。矢量图并不纪录画面上每一点的信息,而是纪录了元素形状及颜色的算法,当你打开一付矢量图的时候,软件对图形象对应的函数进行运算,将运算结果[图形的形状和颜色]显示给你看。无论显示画面是大还是小,画面上的对象对应的算法是不变的,所以,即使对画面进行倍数相当大的缩放,其显示效果仍然相同(不失真)。

    7.4、总结

    图片的压缩方式有无损压缩和有损压缩两种。前者压缩后比后者要大。

    1、图片的颜色表示有直接颜色和索引颜色两种。前者比后者更丰富,体积更大。

    2、BMP采用无损压缩和直接色,所以体积最大。太大的文件格式格式导致它几乎没有用武之地。

    3、GIF采用无损和索引色的,适用于对色彩要求不高同时需要文件体积较小的场景,比如企业Logo、线框类的图等。支持动画和透明。

    4、JPEG(JPG)采用有损压缩和直接色,不适合用来存储企业Logo、线框类的图。因为有损压缩会导致图片模糊,而直接色的选用,又会导致图片文件较GIF更大。而适合作为摄影类的图片。.

    所以小图片尽量使用png、要想支持动画则使用gif、大型图片使用jpg。

    展开全文
  • JPG的压缩原理

    千次阅读 2018-04-15 12:46:37
    JPG的压缩原理整理了两篇文章:http://www.360doc.com/content/17/0901/18/41193811_683881904.shtml和 原文:https://blog.csdn.net/asdzheng/article/details/51779038本篇...原文地址需翻墙, 以下正文:JPG格...
  • Tif文件转化为JPG文件

    热门讨论 2011-04-08 09:40:37
    Tif文件转化为JPG文件,Tif文件转化为JPG文件Tif文件转化为JPG文件Tif文件转化为JPG文件Tif文件转化为JPG文件
  • jpg和jpeg的区别

    千次阅读 2021-07-21 20:29:18
    这两种后缀的文件实质上是相同的,严格来说,JPEG的扩展名位.jpeg,但是由于DOS时代的8.3文件命名原则,PC机使用了.jpg的扩展名,由于Mac并不限制扩展名的场长度,因此当时苹果机上都是用了.jpeg的后缀名,虽然现在...
  • jpg转CAD矢量图.rar

    热门讨论 2011-05-21 01:31:28
    jpg转CAD矢量图.rar jpg转CAD矢量图.rar很好用的描图软件
  • java pdf转jpg

    千次阅读 2019-12-23 10:16:24
    public class pdf2jpg { public static void main(String args[]){ pdfbox(); } static void pdfbox() { PDDocument doc = null; ByteArrayOutputStream os = null; InputStream stream = null; ...
  • PDF转JPG工具
  • heic图片格式转换jpg antb/Shutterstock 蚂蚁/快门 Starting with iOS 11, the iPhone and iPad switched to the new high-efficiency HEIC/HEIF format for photos. You might have realized this when you tried ...
  • PPM图像转JPG

    千次阅读 2019-04-04 16:50:39
    由于项目需要,做了PPM与JPG图像格式相互转换 最简单的转换是python代码,如下: from PIL import Image img = Image.open("xxx.ppm") img.save("xxx.jpg") img.show() 上面是PPM转JPGJPG转PPM只需将名字相应...
  • 将多个 JPG 文件整合为1个 PDF 文件 绿色免安装版,内附注册码
  • C++实现Bmp转JPG

    热门讨论 2010-09-06 14:33:24
    用GDI+实现BMP格式图片转JPG格式图片的一个C++类。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,135,095
精华内容 454,038
关键字:

jpg