图像处理问题记录

JPEG算法分析与实现
JPEG算法解密
JPEG算法
libjpeg for DCMI
Stm32-Tools-Evaluation/STM32Cube_FW_F4_V1.9.0/Projects/STM32F429I-Discovery/Applications/LibJPEG/
QDBMP (Quick n’ Dirty BMP) is a minimalistic cross-platform C library for handling BMP image files
How To Create A Bitmap Image File By Hand, Without Stencils
How to create bitmap in C ?
如何获取JPEG图片质量和预测压缩图片大小
图解RGB565、RGB555、RGB16、RGB24、RGB32、ARGB32等格式的区别
BMP文件格式详解(BMP file format)

ppm文件

PPM文件格式详解
Python:使用 PIL.Image 将图片从 PPM 格式转为PNG格式

#!/usr/bin/python
# coding=utf-8
import os
import sys
import subprocess
from PIL import Image

#遍历当前文件夹,筛选符合要求的文件,并执行替换重命名
def convert_pic(root_path):
    print (root_path)
    try:
        for root,dir,files in os.walk(root_path):
                for file in files:
                    file_name, file_ext = os.path.splitext(file)
                    # 判断是否为ppm图片格式
                    if file_ext!=".ppm":
                        continue
                    img = Image.open(root_path+"/"+str(file))
                    print(root_path+"\\"+str(file))
                    converted_path=root_path+"/converted_png"
                    folder = os.path.exists(converted_path)
                    if not folder:
                        os.mkdir(converted_path)   
                    #修改文件后缀名为png
                    file_ext=".png" 
                    newfile_name= file_name+file_ext
                    img.save(converted_path+'/'+newfile_name)  
        print("转换成功!")            
    except Exception as e :
        print (e)
        print("转换失败!")
         
 
#定义主函数,接收命令行参数
def main(argv):
    print (argv[0])
    convert_pic(".")
    subprocess.call("pause",shell=True)#按任意键退出   
   
    # convert_pic(".",96,96)
    
    
    
        
if __name__ == '__main__':
    main(sys.argv)
    

PPM图像格式是由Jef Poskanzer 在1991年所创造的。

PPM(Portable Pixmap Format)还有两位兄长,大哥名叫「PBM」,二哥人称「PGM」,他们三兄弟各有所长,下面为你们一一介绍:

PBM 是位图(bitmap),仅有黑与白,没有灰
PGM 是灰度图(grayscale)
PPM 是通过RGB三种颜色显现的图像(pixmaps)

每个图像文件的开头都通过2个字节「magic number」来表明文件格式的类型(PBM, PGM, PPM),以及编码方式(ASCII 或 Binary),magic number分别为P1、P2、P3、P4、P5、P6。

Magic NumberTypeEncoding
P1BitmapASCII
P2GraymapASCII
P3PixmapASCII
P4BitmapBinary
P5GraymapBinary
P6PixmapBinary
当编码格式为Binary时,像素点的存储采取的是BigEndian,即R存储在低地址,B存储在高地址
  1. PPM灰度文件
    文件头由3行文本组成,可由fgets读出
    1)第一行为“P2",表示文件类型
    2)第二行为图像的宽度和高度
    3)第三行为最大的象素值255
    接下来是图像数据块。按行顺序存储。每个象素占4个字节,灰度通道为4字节ASCII码表示的整数,
    高字节在前。左上角为坐标原点。

  2. 16位PPM文件(至少适用于读取由DCRAW生成的PPM文件)
    文件头由3行文本组成,可由fgets读出
    1)第一行为“P6",表示文件类型
    2)第二行为图像的宽度和高度
    3)第三行为最大的象素值
    接下来是图像数据块。按行顺序存储。每个象素占3个字节,依次为红绿蓝通道,每个通道为1字节整
    数。左上角为坐标原点。

  3. PPM彩色文件
    文件头由3行文本组成,可由fgets读出
    1)第一行为“P3",表示文件类型
    2)第二行为图像的宽度和高度
    3)第三行为最大的象素值255
    接下来是图像数据块。按行顺序存储。每个象素占12个字节,依次为红绿蓝通道,每个通道为4字节
    ASCII码表示的整数,高字节在前。左上角为坐标原点。

例:给一个16位的ppm文件写文件头

// Write header

//其中width和height中间有一个空格

fprintf(pFile, "P6\n%d %d\n255\n", width, height);

TGA文件

TGA_FileFormat.pdf
TGA文件格式解析
【数据压缩2】TGA格式图片文件分析
.tga图片的文件格式分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值