python做地图保存为png,如何在python中将原始图像转换为png?

I have a folder containing over 200 raw images, i want to convert all of them to png or any other format, In C it's pretty easy but in python i don't know how it's done

I found this snippet

#import struct

import numpy, array, PIL, Image

from struct import *

#declarations

arr1D = array.array('H') #H is unsigned short

#------------------------------------

#read 16 bit unsigned raw depth image

#------------------------------------

w = 640

h = 480

fid = open('/home/salman/salman/NiSimpleRead_salman/data/200.raw')

#fid = open('/home/salman/test.raw')

numBytes = w*h

arr1D.read(fid, numBytes)

fid.close()

#----------------------------------------------------

#convert to float numpy array -> scale -> uint8 array

#----------------------------------------------------

numarr = numpy.array(arr1D, dtype='float');

numarr = 255 - (numarr*255.0/numarr.max())

numarr.shape = (h,w)

numarr = numarr.astype('uint8')

#======================

#IMAGES

#======================

#2D numpy array -> image

#-----------------------

img = Image.fromarray(numarr); #print data.dtype.name

#image view and save

#-------------------

#img.show()

img.save('/home/salman/test.png')

This is the only snippet that I can find, is this the proper way to do it?

解决方案

It should be something like:

rawData = open("foo.raw" 'rb').read()

imgSize = (x,y)

# Use the PIL raw decoder to read the data.

# the 'F;16' informs the raw decoder that we are reading

# a little endian, unsigned integer 16 bit data.

img = Image.fromstring('L', imgSize, rawData, 'raw', 'F;16')

img.save("foo.png")

The First argument is the image mode and can be any from:

1 (1-bit pixels, black and white, stored with one pixel per byte)

L (8-bit pixels, black and white)

P (8-bit pixels, mapped to any other mode using a colour palette)

RGB (3x8-bit pixels, true colour)

RGBA (4x8-bit pixels, true colour with transparency mask)

CMYK (4x8-bit pixels, colour separation)

YCbCr (3x8-bit pixels, colour video format)

I (32-bit signed integer pixels)

F (32-bit floating point pixels)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值