Saya guna flask
框架,图片处理用的是pillow
.
Secara amnya, muat naik dilakukan dalam gelungfiles
,然后逐个file.save()
我希望在save
完成后,执行pillow
logik mampatan.
Tapi nampaknyasave
是一个I/O操作,存在延迟性,如果直接在file.save()
下面直接调用pillow
的Image.open
, ralat akan berlaku kerana data imej belum ditulis pada imej.
Apa yang perlu dilakukan?
Anda lihat operasi simpan bukan tak segerak
Kemas kini
copyfileobj ialah operasi menyekat
Sebenarnya, untuk pemprosesan imej jenis ini, adalah lebih baik untuk menggunakan OSS atau Qiniu Alibaba Cloud dan fungsi storan lain yang serupa Secara langsung, muat naik imej ke OOS, dan kemudian panggil akhiran khas untuk pemprosesan imej yang ditentukan. anda juga akan mengakses OSS untuk diproses. Ini bukan sahaja dapat mengelakkan beban menggunakan pelayan anda sendiri untuk memproses imej, tetapi juga mengurangkan tekanan capaian, yang juga sangat bermanfaat untuk mengurangkan kerumitan program.
Pengarang melihat parameter fp Image.open Anda juga boleh menggunakan nama fail (rentetan), objek pathlib.Path atau objek fail PIL.Image.open(fp, mode='r')
Anda hanya boleh menghantar fail terus ke Image.open(file)!