# DB 관련 전역변수
conn, cur = None, None
HOST = "192.168.56.101"
USER ="winUser"
PASSWORD ="4321"
DB = "image_db"
def saveDB():
global window, canvas, paper, inImage, outImage, inH, inW, outH, outW, filename
global conn, cur
"""
-- 이미지 파일을 저장하는 데이터베이스/테이블
CREATE DATABASE IF NOT EXISTS image_db;
USE image_db;
CREATE TABLE IF NOT EXISTS raw_table
(
rawId INT PRIMARY KEY,
rawName VARCHAR(255), -- 파일명
rawExt CHAR(5), -- 확장자명
xSize INT, -- width
ySize INT -- height
);
CREATE TABLE IF NOT EXISTS gray_table
(
rawId INT,
x SMALLINT UNSIGNED,
y SMALLINT UNSIGNED,
z TINYINT UNSIGNED, -- -128~ 127 => UNSIGNED 0~255
FOREIGN KEY gray_table(rawId) REFERENCES raw_table(rawId)
);
"""
## 메인 코드부
if filename == '' or filename == None:
return
conn = pymysql.connect(host=HOST, user=USER, password=PASSWORD,
db=DB, charset="utf8")
cur = conn.cursor() # 빈 트럭 준비
rawId = random.randint(-2100000000, +2100000000)
tmpName = os.path.basename(filename) ##파일 이름 분리
rawName, rawExt = tmpName.split(".")
xSize = outW
ySize = outH
# 파일 정보 입력
sql = "INSERT INTO raw_table(rawId, rawName, rawExt, xSize, ySize) "
sql += "VALUES ( " + str(rawId) + ", '" + rawName + "', '" + rawExt + "', "
sql += str(xSize) + ", " + str(ySize) + ")"
# print(sql) # mysql 에서 잘되는지 확인해본다
# return
cur.execute(sql)
# 픽셀 정보 입력
for x in range(outH):
for y in range(outW):
z = outImage[x][y]
sql = "INSERT INTO gray_table(rawId, x, y, z) VALUES ("
sql += str(rawId) + "," + str(x) + "," + str(y)
sql += "," + str(z) +")"
cur.execute(sql)
conn.commit()
# 끝. 정리하기
cur.close()
conn.close()
print("ok")
Gray Image edit Program Ver.0.0.2[DB저장].py
0.06MB
댓글 영역