import matplotlib.pyplot as plt  # plt 用于显示图片
import numpy as np
import cv2
#用cv2.imread读取灰度图,发现获得的图片为3通道,经查证发现,cv2.imread()函数默认读取的是一副彩色图片,想要读取灰度图,则需要设置参数。
#IndexError: index 3 is out of bounds for axis 0 with size 3  出现这种错误是没有alpha通道  c数组为宽x高个0xff
img = cv2.imread("d:/2626.png", cv2.IMREAD_UNCHANGED)
h, w, g = (img.shape)
print(h)
f = open("d:/2626_alpha.txt", 'wb')
a = np.array(img)
print(np.shape(img));
# print(img)
print(img[0][0][0])
f.write("{".encode())
for j in range(0, h):for i in range(0, w):b = a[j][i][3]print(type(hex(b)))str = hex(b) + ','f.write(str.encode())
f.write("};".encode())
f.close()plt.imshow(img)  # 显示图片
plt.axis('on')  # 不显示坐标轴
plt.show()
import matplotlib.pyplot as plt  # plt 用于显示图片
import numpy as np
import cv2#用cv2.imread读取灰度图,发现获得的图片为3通道,经查证发现,cv2.imread()函数默认读取的是一副彩色图片,想要读取灰度图,则需要设置参数。
#flags:读入图片的标志
#cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
#cv2.IMREAD_GRAYSCALE:读入灰度图片
#cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道
def rgb888_to_rgb565(r, g, b):aa = ((g >> 5) & 0x07)bb = ((r >> 3) & 0x1F) << 3cc = ((b >> 3) & 0x1F) << 8dd = ((g >> 2) & 0x07) << 13print(hex(aa))print(hex(bb))print(hex(cc))print(hex(dd))c = aa | bb | cc | ddh = (c & 0xFF00) >> 8l = (c & 0x00FF)c = (l << 8) | (h)return np.uint16(c)# opencv 读取图片
path = "D:\\"
img = cv2.imread("D:\\2626.png", cv2.IMREAD_UNCHANGED)
plt.imshow(img)  # 显示图片
# 获得图像信息
h, w, g = (img.shape)
print(h)
f = open(path + "2626_pixel.txt", 'w')
a = np.array(img)
print(np.shape(img))
# print(img)
print(img[0][0][0])
f.write("{")
for j in range(0, h):for i in range(0, w):b = a[j][i][0]g = a[j][i][1]r = a[j][i][2]rgb565 = rgb888_to_rgb565(r, g, b);rgb565_h = rgb565 >> 8rgb565_l = rgb565 & 0xFFap = a[j][i][3]print(hex(r), hex(g), hex(b), hex(rgb565))f.write(str(hex(rgb565)) + ",")#f.write(str(hex(rgb565_h)) + ",")#f.write(str(hex(rgb565_l)) + ",")#f.write(str(hex(ap)) + ",")# f.write(str(hex(r))+","+str(hex(g))+","+str(hex(b))+","+str(hex(ap))+",")
#    f.write('\n')
f.write("};")
f.close()plt.axis('on')  # 不显示坐标轴
plt.show()

带透明png转换成c数组相关推荐

  1. 如何将PHP对象数组转换成普通数组

    /** * 对象数组转为普通数组 * * AJAX提交到后台的JSON字串经decode解码后为一个对象数组, * 为此必须转为普通数组后才能进行后续处理, * 此函数支持多维数组处理. * * @p ...

  2. python 如何查看列表(List)的维度? (需要将List转换成numpy数组)

    查看List的维度需要将List转换成numpy数组,惨 import numpy as np l=[[0,1,2],[1,2,3]] print(np.array(l).shape) # (2, 3 ...

  3. 【C#每日一贴】ArrayList 转换成byte数组

    2019独角兽企业重金招聘Python工程师标准>>> // C# ArrayList 转换成byte数组 ArrayList al = new ArrayList(); byte[ ...

  4. php数组转化js数组格式化,php数组转换成js数组

    php数组转换成js数组的方法:1.将$data转成json编码,然后用eval将json格式转为js数组:2.直接使用php中json编码后的数组. 本文操作环境:windows7系统.PHP7.1 ...

  5. HDOJ---1431 素数回文[素数筛选+ltoa函数(将长整形转换成字符数组)+打表]

    素数回文 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  6. js实现字符串数组转换成数字数组

    js实现字符串数组转换成数字数组的几种方式 1. 遍历方式实现 var turnNum = function(nums){for(let i=0;i<nums.length;i++){nums[ ...

  7. Json对象转换成Json数组

    问题 在写单元测试是报错如下: JSON解析错误:不能将JavaUTIL.AARYLIST实例反序列化到StaskObjo对象令牌中 代码: 自己解决了挺长时间,也没研究出什么好的办法,最后问朴世超组 ...

  8. js 字符串数组转换成数字数组

    1.如何不使用遍历把字符串数组转换成数字数组 2.举个例子 : ['1','2','3']=>[1,2,3] 解决方法 ['1','2','3'].map(Number)

  9. C# 将对象转换成字节数组(二进制数据)

    在将自定义对象或者数组等这样的数据存储到数据库时往往需要转换成二进制字节,尤其是在一些O/RM数据库框架中,下面是转换的函数,一个是将对象转换成二进制字节数组,另一个是将从数据库中读取的二进制流转换成 ...

最新文章

  1. Android 使用 setImageResource 清空图片
  2. 用正则表达式和java解析csv文件
  3. phpexcel的自动加载与其他框架有冲突
  4. Java设计模式(代理模式-模板方法模式-命令模式)
  5. 硬回车与软回车[转]
  6. java实现-两个栈实现一个队列和两个队列实现一个栈
  7. 2015级C++第10、11周程序阅读 继承和派生
  8. LSA类型讲解——LSA-5(第5类LSA——Autonomous System External LSA)、LSA-4(第四类LSA——ASBR Summary LSA)讲解
  9. java插入法排序_java算法之插入排序法
  10. 基于SURF算法的图像拼接方法
  11. 网游之古剑太初最新章节
  12. 第二弹!python爬虫批量下载高清大图
  13. 基于nodejs+vue社区互助平台- vscode项目
  14. 大数据征信|芝麻信用、腾讯信用和51信用卡等信用评分模型解析
  15. pgsql处理文档类型数据_PostgreSQL 基本数据类型及常用SQL 函数操作
  16. java水平测试_【考试】java基础知识测试,看你能得多少分?
  17. 孩子数学成绩不好怎么办_小孩子数学差怎么办
  18. Codeforces C. Ehab and Path-etic MEXs (树 / 构造 / MEX)
  19. linux安装matlab2016,ubuntu16.04 安装matlab2016b教程
  20. Windows高效办公之批量创建文件夹

热门文章

  1. 搜索引擎只能抓取html文件,为什么有些明明存在的网页不能被搜索到?
  2. python图像转矩阵_python 图像转矩阵,矩阵转图像
  3. 基础总结篇之七:ContentProvider之读写短消息
  4. Android图片,PNG还是JPG?用哪种?
  5. armv6, armv7, armv7s和i386
  6. C# 通过一个控制台打开另一个控制台
  7. 通过判断流的头 判断文件类型
  8. python语言磁力搜索引擎源码公开,基于DHT协议,十二分有技术含量的技术博客...
  9. Spark修炼之道(高级篇)——Spark源码阅读:第九节 Task执行成功时的结果处理...
  10. rsync与inotify集成实现数据实时同步更新