หน้า 1 จากทั้งหมด 3
สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
โพสต์แล้ว: 11/08/2022 10:39 am
โดย fonfonn
การส่งค่ารูปภาพที่แปลงได้กลับเป็น base64 จากโค้ดผิดพลาดตรงไหนคะ รบกวนช่วยแก้ให้ถูกต้องทีค่ะ ที่เข้าใจคือเรานำ ไฟล์ภาพที่แปลงได้ มาทำการแปลงเป็น base64 และ return ค่ากลับ
โค้ด: เลือกทั้งหมด
@app.post('/api_pdftopic')
async def read_pdf(request: Pdf_base64):
with open(r'C:\Users\fonfo\pdf-toolkits\lernpython.pdf', 'wb') as theFile:
theFile.write(base64.b64decode(request.pdf_base64))
process = subprocess.Popen(r"Magick convert C:\Users\fonfo\pdf-toolkits\lernpython.pdf -quality 100 C:\Users\fonfo\pdf-toolkits\lernpython.jpg", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
image_base64 = base64.b64encode(out) #นำผลลัพธ์ที่ได้มาแปลงเป็น base64
return (image_base64) #ส่งค่ากลับคืนเป็น base64 ที่แปลงมา
แต่เมื่อใส่โค้ดตามด้านบนแล้ว ผลที่ได้คือ "" ตามภาพค่ะ แต่ต้องการให้มัน return base64 ของภาพที่แปลงได้แล้ว ควรทำยังไงคะ

- ผลลัพธ์ที่ได้.png (5.92 KiB) Viewed 2321 times
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
โพสต์แล้ว: 11/08/2022 10:44 am
โดย wkid
ตรง return ลองเอาวงเล็บออกหน่อยครับ ถ้าไม่ได้ ขอดูค่าของ image_base64 ด้วยครับ ลองปริ้นมาเช็คดูครับ
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
โพสต์แล้ว: 11/08/2022 11:03 am
โดย fonfonn
จากที่ลองเอา () ออกนะคะ
โค้ด: เลือกทั้งหมด
@app.post('/api_pdftopic')
async def read_pdf(request: Pdf_base64):
with open(r'C:\Users\fonfo\pdf-toolkits\lernpython.pdf', 'wb') as theFile:
theFile.write(base64.b64decode(request.pdf_base64))
process = subprocess.Popen(r"Magick convert C:\Users\fonfo\pdf-toolkits\lernpython.pdf C:\Users\fonfo\pdf-toolkits\lernpython.jpg", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
image_base64 = base64.b64encode(out)
print (image_base64)
return image_base64
ผลลัพธ์
ผลที่ได้เป็นแบบเดิมค่ะ

- ผลลัพธ์ที่ได้.png (5.92 KiB) Viewed 2307 times
ส่วนค่าที่ print มันต้องขึ้นที่ terminal ใช่ไหมคะ
ผลที่ได้

- ค่าที่ปริ๊น.png (21.89 KiB) Viewed 2307 times
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
โพสต์แล้ว: 11/08/2022 11:09 am
โดย wkid
อันนี้ส้งแค่ base64 อย่างเดียวหรอครับ ค่ามันไม่มานะครับ ลองนำโค้ดแปลงไปทดสอบแยก แล้วปริ้นผลมาดูหน่อยครับว่าค่าที่ปริ้นตรงกันไหมครับ
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
โพสต์แล้ว: 11/08/2022 11:23 am
โดย fonfonn
เมื่อลองทดสอบแยก
โค้ด: เลือกทั้งหมด
import base64
import subprocess
process = subprocess.Popen(r"Magick convert C:\Users\fonfo\pdf-toolkits\lernpython.pdf -quality 100 C:\Users\fonfo\pdf-toolkits\lernpython.jpg",stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
image_base64 = base64.b64encode(out)
print (image_base64)
ผลที่ได้ จาก print ได้ b' '

- ได้ค่า b' '.png (53.4 KiB) Viewed 2291 times
จะสามารถแก้ไขยังไงได้บ้างคะ หรือโค้ดที่ถูกต้องต้องแก้เป็นแบบไหนคะ คือต้องการให้มัน return base64 ของภาพที่เราทำการแปลงได้ออกมาค่ะ
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
โพสต์แล้ว: 11/08/2022 11:32 am
โดย MBMoo
out ที่ได้มา ได้ปริ้นผลที่ได้ดูก่อนมั้ยคะ
และเคยมีแนะนำให้ดูเพิ่มเติมเรื่อง Magick ไปแล้วว่าสามารถแปลง pdf เป็น base64 ภาพ ได้เลย
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
โพสต์แล้ว: 11/08/2022 12:38 pm
โดย fonfonn
จากที่ลองที่ปริ๊น out ออกมาดูนะคะ ได้
และจากการดูเพิ่มเติมเรื่อง Magick ที่สามารถแปลง pdf เป็น base64 ภาพ ได้เลย แต่ยังสงสัยเรื่องการใช้งาน สามารถใส่ได้ในลักษณะนี้เลยไหมคะ
โค้ด: เลือกทั้งหมด
process = subprocess.Popen(r"Magick convert C:\Users\fonfo\pdf-toolkits\lernpython.pdf INLINE:JPG:-", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
ตอนนี้ถ้าใช้แบบนี้ เมื่อสั่ง Excute จะได้ไฟล์ JPG ขึ้นมา

- 2022-08-11 (6).png (108.52 KiB) Viewed 2269 times
ซึ่งสงสัยว่าการใช้งานโค้ด แปลง pdf เป็น base64 ภาพ นี่ใช้งานยังไงคะ แล้วสามารถ return ค่า base64 กลับแบบไหนค่ะ
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
โพสต์แล้ว: 11/08/2022 12:40 pm
โดย MBMoo
ปริ้น out มาดูหรือยังคะแบบ pdf เป็น base64 ปริ้นทั้ง out และ err
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
โพสต์แล้ว: 11/08/2022 12:44 pm
โดย wkid
ค่าที่รีเทิร์กลับ ก็สามารถรีเทิร์นได้ทั้ง แบบ int str ครับ แต่ค่าที่ส่งกลับไปจะออกมาในรูบแบบ json ครับ
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
โพสต์แล้ว: 11/08/2022 1:03 pm
โดย fonfonn
bolue เขียน: ↑11/08/2022 12:40 pm
ปริ้น out มาดูหรือยังคะแบบ pdf เป็น base64 ปริ้นทั้ง out และ err
จากโค้ดนี้นะคะ
โค้ด: เลือกทั้งหมด
@app.post('/api_pdftopic')
async def read_pdf(request: Pdf_base64):
with open(r'C:\Users\fonfo\pdf-toolkits\lernpython.pdf', 'wb') as theFile:
theFile.write(base64.b64decode(request.pdf_base64))
process = subprocess.Popen(r"Magick convert C:\Users\fonfo\pdf-toolkits\lernpython.pdf INLINE:JPG:-", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
print (out)
print (type(out))
print (err)
print (type(err))
return
เมื่อสั่งปริ๊น ทั้งตัว out และ err

- 2022-08-11.png (5.69 KiB) Viewed 2256 times
แล้วยังไงต่อคะแบบนี้ เพราะได้เป็น