สอบถามการส่งค่า กลับเป็น base64 ในภาษา python

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

สอบถามการส่งค่า กลับเป็น base64 ในภาษา python

โพสต์ที่ยังไม่ได้อ่าน โดย 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
ผลลัพธ์ที่ได้.png (5.92 KiB) Viewed 1240 times
you're the only one treasure💎
ภาพประจำตัวสมาชิก
wkid
PHP VIP Members
PHP VIP Members
โพสต์: 2158
ลงทะเบียนเมื่อ: 17/05/2022 10:37 am

Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python

โพสต์ที่ยังไม่ได้อ่าน โดย wkid »

ตรง return ลองเอาวงเล็บออกหน่อยครับ ถ้าไม่ได้ ขอดูค่าของ image_base64 ด้วยครับ ลองปริ้นมาเช็คดูครับ
ทำไมสัตว์ที่น่ากลัวที่สุดถึงตัวเล็กๆที่เรียกว่า Bug ละนั่น );
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python

โพสต์ที่ยังไม่ได้อ่าน โดย 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
ผลลัพธ์ที่ได้.png (5.92 KiB) Viewed 1226 times
ส่วนค่าที่ print มันต้องขึ้นที่ terminal ใช่ไหมคะ
ผลที่ได้
ค่าที่ปริ๊น.png
ค่าที่ปริ๊น.png (21.89 KiB) Viewed 1226 times
you're the only one treasure💎
ภาพประจำตัวสมาชิก
wkid
PHP VIP Members
PHP VIP Members
โพสต์: 2158
ลงทะเบียนเมื่อ: 17/05/2022 10:37 am

Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python

โพสต์ที่ยังไม่ได้อ่าน โดย wkid »

อันนี้ส้งแค่ base64 อย่างเดียวหรอครับ ค่ามันไม่มานะครับ ลองนำโค้ดแปลงไปทดสอบแยก แล้วปริ้นผลมาดูหน่อยครับว่าค่าที่ปริ้นตรงกันไหมครับ
ทำไมสัตว์ที่น่ากลัวที่สุดถึงตัวเล็กๆที่เรียกว่า Bug ละนั่น );
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python

โพสต์ที่ยังไม่ได้อ่าน โดย 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
ได้ค่า b' '.png (53.4 KiB) Viewed 1210 times
จะสามารถแก้ไขยังไงได้บ้างคะ หรือโค้ดที่ถูกต้องต้องแก้เป็นแบบไหนคะ คือต้องการให้มัน return base64 ของภาพที่เราทำการแปลงได้ออกมาค่ะ
you're the only one treasure💎
ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 25355
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python

โพสต์ที่ยังไม่ได้อ่าน โดย MBMoo »

out ที่ได้มา ได้ปริ้นผลที่ได้ดูก่อนมั้ยคะ

และเคยมีแนะนำให้ดูเพิ่มเติมเรื่อง Magick ไปแล้วว่าสามารถแปลง pdf เป็น base64 ภาพ ได้เลย
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python

โพสต์ที่ยังไม่ได้อ่าน โดย 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
2022-08-11 (6).png (108.52 KiB) Viewed 1188 times
ซึ่งสงสัยว่าการใช้งานโค้ด แปลง pdf เป็น base64 ภาพ นี่ใช้งานยังไงคะ แล้วสามารถ return ค่า base64 กลับแบบไหนค่ะ
you're the only one treasure💎
ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 25355
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python

โพสต์ที่ยังไม่ได้อ่าน โดย MBMoo »

ปริ้น out มาดูหรือยังคะแบบ pdf เป็น base64 ปริ้นทั้ง out และ err
ภาพประจำตัวสมาชิก
wkid
PHP VIP Members
PHP VIP Members
โพสต์: 2158
ลงทะเบียนเมื่อ: 17/05/2022 10:37 am

Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python

โพสต์ที่ยังไม่ได้อ่าน โดย wkid »

ค่าที่รีเทิร์กลับ ก็สามารถรีเทิร์นได้ทั้ง แบบ int str ครับ แต่ค่าที่ส่งกลับไปจะออกมาในรูบแบบ json ครับ
ทำไมสัตว์ที่น่ากลัวที่สุดถึงตัวเล็กๆที่เรียกว่า Bug ละนั่น );
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python

โพสต์ที่ยังไม่ได้อ่าน โดย 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
2022-08-11.png (5.69 KiB) Viewed 1175 times
แล้วยังไงต่อคะแบบนี้ เพราะได้เป็น

โค้ด: เลือกทั้งหมด

b''
<class 'bytes'>
b''
<class 'bytes'>
you're the only one treasure💎
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 42