FPGA开发小程序——图像数据转换.coe文件

由于开发须要,编写了一个图像数据转换成.coe 文件的小程序,发布出来给有须要的人小程序

1.先给出源程序数组

import tkinter as tk
from tkinter import filedialog
import os
application_window = tk.Tk()
my_filetypes = [('all files', '.*'), ('text files', '.txt')]
answer = filedialog.askopenfilename(parent=application_window,
                                    initialdir=os.getcwd(),
                                    title="请选择文件:",
                                    filetypes=my_filetypes)#对话框选择文件
k = os.path.basename(answer)#获取文件名
def func(f):
    a = f.readlines()
    return a
with open(answer,encoding='utf-8') as f, open('answer.bak','w',encoding='utf-8') as f2:
    s = func(f)#取出全部行造成一个列表
    s.pop(0)#删除第0个元素也就是0行
    s.insert(0,'memory_initialization_radix=16;\nmemory_initialization_vector=\n')#在第0行添加.coe文件头
    s1 = ''.join(s)#将列表转成字符串
    s2 = s1.replace('\n','')#去掉换行符
    s3 = s2.replace(',','')#去掉逗号
    s4 = s3.replace('}','')#去掉}
    s5 = s4.replace('0X','')#去掉0X
    l = 0
    while l < len(s5):
        f2.write(s5[l])
        if l == 30:#在字符memory_initialization_radix=16;后面加入换行符
            f2.write('\n')
        if l > 59 or l == 59:#将.coe文件头写入answer.bak
            if (l + 1) % 6 == 0:#6个字符分红一组,由于是16进制数,因此造成的数据位宽是4bit*6 = 24bit
                if (l + 1) % 60 == 0:#10个组分红一行
                    f2.write('\n')
                else:
                    f2.write(' ')
        l += 1
# os.remove('answer')
os.rename('answer.bak',k.replace('.c','.coe'))#将文件转换成.coe文件
print("转换成功!")
import time
time.sleep(2)

2.操做流程app

首先须要有一张图片,而后用Img2Lcd.exe软件转成对应的c语言数组的.c文件,转换成功后就能够用个人小程序了spa

废话很少说,有图有真相code

双击个人小程序文件blog

会弹出文件选择对话框图片

选择.c文件以后会自动转换成.coe文件utf-8

此文件能够直接放到xilinx的romIP中使用,如须要其余位宽请自行修改代码开发

.exe文件百度网盘连接:rem

连接:https://pan.baidu.com/s/1Uxsjdskx8G7xNIoPhhBtrw 提取码:2jsa

相关文章
相关标签/搜索