【发布时间】:2020-06-30 22:04:20
【问题描述】:
我需要一个可以使用 python 访问并且可以存储许多图片的服务器。我读到 MySQL-Server 可以工作。首先,这是最好的选择还是其他更好的选择? (我想用图像训练 AI)
现在我构建了一些 python 代码,可以将图像保存在我的 MySQL 服务器中,但它们太大了。在我的硬盘上,它们需要 4KB,在 MySQL-Server 中,它们都需要 160KB,因此每个图像需要 80KB。
那是存储空间的 20 倍!有没有更好的存储方式?
我在 python 中的代码:
def insert_image(self, photo_path, name, table_name, id):
binary_photo = self.convert_to_binary_data(photo_path)
insert_blob_query = "INSERT INTO {} (id, name, photo) VALUES ('{}','{}',{})".format(table_name, id, name,
str(base64.b64encode(
binary_photo))[1:])
self.connection.execute(insert_blob_query)
def read_blob_data_by_id(self, id, table_name, path):
sql_fetch_blob_query = "SELECT * from {} where id = '{}'".format(table_name, id)
result = self.connection.execute(sql_fetch_blob_query)
for row in result:
id_query = row[0]
name = row[1]
photo = base64.b64decode(row[2])
file_like = io.BytesIO(photo)
img = Image.open(file_like)
img.save(path + '\\' + name + '.jpg')
我正在使用 python 3.8 和 MySQL-Server 8.2。
【问题讨论】:
标签: python mysql python-3.x image storage