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

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

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

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

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

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

ได้ลองทำตาม กระทู้ ในการแปลงเป็น base64 โดยที่ไม่ต้องมีการเซฟ viewtopic.php?p=249784#p249784
ผลที่ได้ เมื่อสั่ง print ไม่มีค่า base64 ออกมาค่ะ
จะได้ผลลัพธ์ตามภาพด้านล่างค่ะ
2022-08-11.png
2022-08-11.png (5.69 KiB) Viewed 721 times

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

b''
<class 'bytes'>
b''
<class 'bytes'>
you're the only one treasure💎
ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 25599
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

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

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

ลองทำวิธีเซฟเป็นไฟล์

แล้วทำการเปิดไฟล์รูปและให้แปลงไฟล์เป็น base64

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

with open("image.jpg", "rb") as image_file:
    encoded_string = base64.b64encode(image_file.read())
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

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

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

bolue เขียน: 11/08/2022 1:45 pm ลองทำวิธีเซฟเป็นไฟล์

แล้วทำการเปิดไฟล์รูปและให้แปลงไฟล์เป็น base64

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

with open("image.jpg", "rb") as image_file:
    encoded_string = base64.b64encode(image_file.read())
จากการนำโค้ดที่ได้มาใช้

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

@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()
    #ส่วนที่เพิ่มเข้ามา ในการแปลงไฟล์ภาพเป็น base64
    with open("lernpython.jpg", "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read())
    return (encoded_string)
ผลลัพธ์ที่ได้จากการทดสอบใน Postman
จะได้ base64 ของไฟล์ภาพที่แปลง
ได้base64ของไฟล์ภาพที่แปลง.png
ได้base64ของไฟล์ภาพที่แปลง.png (142.96 KiB) Viewed 713 times
you're the only one treasure💎
ภาพประจำตัวสมาชิก
fonfonn
PHP VIP Members
PHP VIP Members
โพสต์: 4983
ลงทะเบียนเมื่อ: 11/07/2022 9:28 am

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

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

สอบเพิ่มเติมค่ะ แล้วถ้าต้องการส่งค่ากลับที่เป็น หลายหน้า ต้องทำยังไงคะ คือในตอนนี้จะเป็นการ แปลงไฟล์ PDF ที่มีหน้าเดียว แล้วแปลงเป็นภาพหนึ่งภาพ จากนั้น return ค่า base64 ภาพที่แปลงได้ แต่ถ้ามีการรับไฟล์ PDF ที่มีหลายหน้า การแปลงเป็นภาพจะได้ไฟล์ภาพหลายไฟล์ จากโค้ด

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

@app.post('/api_pdftopic')
async def read_pdf(request: Pdf_base64):
    with open(r'C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf', 'wb') as theFile:
        theFile.write(base64.b64decode(request.pdf_base64))
    process = subprocess.Popen(r"Magick convert C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf C:\Users\fonfo\pdf-toolkits\pythonPDF.jpg", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    out, err = process.communicate()
    #ในส่วนของการส่งค่ากลับ เป็น base64
    with open("pythonPDF.jpg", "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read())
    return (encoded_string)
ผลลัพธฺที่ได้
ภาพที่ได้จากการแปลงไฟล์ PDF หลายหน้า จะได้ภาพตามจำนวนหน้าของ PDF
ได้ไฟล์ภาพตามจำนวนหน้าของ PDF.png
ได้ไฟล์ภาพตามจำนวนหน้าของ PDF.png (5.88 KiB) Viewed 708 times

เราจะใส่รูปแบบการส่งค่ากลับเป็น base64 ของภาพหลายๆภาพยังไงคะ
you're the only one treasure💎
ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 25599
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

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

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

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

json.dumps({'data': [{'base64': '0.0.0.0' , 'type':'jpg'}, {'base64': '0.0.0.0' , 'type':'jpg'}, {'base64': '0.0.0.0' , 'type':'jpg'},]})

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41230
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

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

ตามตัวอย่างส่งแบบ key value 2 มิติ
เอาและละภาพยัดเข้า json 1 ตัว ประกอบด้วยส่วนประกอบภาพหลายๆ ภาพ

ติดขัดตรงไหนหรือเปล่าครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
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\pythonPDF.pdf', 'wb') as theFile:
        theFile.write(base64.b64decode(request.pdf_base64))
    process = subprocess.Popen(r"Magick convert C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf C:\Users\fonfo\pdf-toolkits\pythonPDF.jpg",
                               stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    out, err = process.communicate()
    
    with open("pythonPDF.jpg", "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read())
เรานำโค้ด การแปลงเป็นภาพไฟล์ภาพหลายไฟล์ ไปใส่ส่วนไหนของโค้ดเดิมหรือต้องปรับแก้ตรงไหนคะ

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

json.dumps({'data': [{'base64': '0.0.0.0' , 'type':'jpg'}, {'base64': '0.0.0.0' , 'type':'jpg'}, {'base64': '0.0.0.0' , 'type':'jpg'},]})
you're the only one treasure💎
ภาพประจำตัวสมาชิก
wkid
PHP VIP Members
PHP VIP Members
โพสต์: 2158
ลงทะเบียนเมื่อ: 17/05/2022 10:37 am

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

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

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

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

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

wkid เขียน: 15/08/2022 9:37 am ถ้าใส่ ใส่ตรง รีเทิร์นครับสำหรับโค้ดส่วนนี้ เพราะเป็นโค้ดในส่วนที่ส่งกลับไปหลายๆข้อมูลครับครับ

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

@app.post('/api_pdftopic')
async def read_pdf(request: Pdf_base64):
    with open(r'C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf', 'wb') as theFile:
        theFile.write(base64.b64decode(request.pdf_base64))
    process = subprocess.Popen(r"Magick convert C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf C:\Users\fonfo\pdf-toolkits\pythonPDF.jpg",
                               stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    out, err = process.communicate()
    
    return json.dumps({'data': [{'base64': '0.0.0.0' , 'type':'jpg'}, 
                                {'base64': '0.0.0.0' , 'type':'jpg'}, 
                                {'base64': '0.0.0.0' , 'type':'jpg'},]})
ลองใส่ตรง รีเทิร์นค่ะ ค่าที่รีเทิร์นมาจะเป็น

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

"{\"data\": [{\"base64\": \"0.0.0.0\", \"type\": \"jpg\"}, {\"base64\": \"0.0.0.0\", \"type\": \"jpg\"}, {\"base64\": \"0.0.0.0\", \"type\": \"jpg\"}]}"
เลยสงสัยว่า ต้องแก้ไขหรือเพิ่มในส่วนไหนค่ะ
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\": \"0.0.0.0\", \"type\": \"jpg\"}, {\"base64\": \"0.0.0.0\", \"type\": \"jpg\"}, {\"base64\": \"0.0.0.0\", \"type\": \"jpg\"}]
ส่วนตรงนี้ให้สร้างลิส มาเก็บค่าของดิกที่เราได้ในแต่ละหน้าไปก่อนครับ แล้วนำมาเพิ่มแทนตรงส่วนนี้ครับ
ทำไมสัตว์ที่น่ากลัวที่สุดถึงตัวเล็กๆที่เรียกว่า Bug ละนั่น );
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

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