因為開發需要,撰寫了一個影像資料轉換成.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.操作流程
首先需要有一張圖片,然后用Img2Lcd.exe軟體轉成對應的c語言陣列的.c檔案,轉換成功后就可以用我的小程式了
廢話不多說,有圖有真相

雙擊我的小程式檔案
會彈出檔案選擇對話框
選擇.c檔案之后會自動轉換成.coe檔案
此檔案可以直接放到xilinx的romIP中使用,如需要其他位寬請自行修改代碼
.exe檔案百度網盤鏈接:
鏈接:https://pan.baidu.com/s/1Uxsjdskx8G7xNIoPhhBtrw
提取碼:2jsa
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/6649.html
標籤:其他
下一篇:第一章
