นิยมนำไปใช้ภายใต้ HTML ตัวอย่างการใช้ ผ่านทางแท็ก img
<img src="data:image/jpg;base64,As10AAQSkZJRg........................Ed0/E//9k=" />
ถ้าหากต้องการเข้ารหัสภาพทางเว็บบราวเซอร์ สามารถเข้าไปที่เว็บ
https://www.base64-image.de/
สำหรับบทความนี้จะนำเสนอวิธีการใช้ด้วยโปรแกรม Visual FoxPro ดังนี้
การเข้ารหัสรูปแบบของภาพไปเป็น Base64
lcPictureFile = GETPICT( "jpg" )
lcPictBase64 = STRCONV( FILETOSTR( lcPictureFile ) , 13 )
การแปลงข้อมูล Base64 กลับไปเป็นแฟ้มภาพ
=STRTOFILE(STRCONV( lcPictBase64 , 14) , lcPictureFile)
การนำข้อมูล Base64 แสดงภายใต้คอนโทรล Image
ThisForm.Image1.Picture = ""
ThisForm.Image1.PictureVal = STRCONV( lcPictBase64 , 14)
การนำเอาข้อมูล Base64 ไปออกรายงาน
ข้อมูล Base64 เป็นข้อมูลตัวอักษรธรรมดา ซึ่งเราสามารถนำไปบันทึกลงในฟิลด์ได้ทันที โดยเก็บไว้ในฟิลด์ประเภท memo หากต้องการนำข้อมูลมาแสดงผลเป็นรูปภาพในรายงาน สามารถทำได้หลายวิธีดังนี้
* สมมุติขอมูล Base64 ถูกเก็บไว้ที่ตาราง TableBase ภายใต้ฟิลด์ชื่อ Pict
วิธีที่ 1
1. สร้างรายงาน CREATE REPORT myReport
2. ทำการสร้างตัวแปร โดยคลิกที่เมนู Report -> Variables...
ที่แท็ป Variables ให้กำหนด
Value to store: BlobImage
Initial value: CREATEOBJECT("Image")
3 นำคอนโทรล Picture/OLE มาใส่ในรายงาน
double click จะเข้าสู่หน้าต่าง Picture/OLE Bound Properties
ที่ แท็ป General คลิกเลือก Expression or variable name
จากนั้นป้อนตัวแปรที่ช่อง Control source: BlobImage
คลิกปุ่ม OK
double click จะเข้าสู่หน้าต่าง Picture/OLE Bound Properties
ที่ แท็ป General คลิกเลือก Expression or variable name
จากนั้นป้อนตัวแปรที่ช่อง Control source: BlobImage
คลิกปุ่ม OK
4. double click ที่ Detail จะเข้าสู่หน้าต่าง Detail Band Properties
คลิกที่แท็บ General
ทีช่อง On entry: ใส่คำสั่ง
EXECSCRIPT("Blobimage.PictureVal=STRCONV(TableBase.Pict , 14)")
*** TableBase.Pict คือชื่อตารางและฟิลด์ที่เก็บข้อมูล Base64
คลิกที่แท็บ General
ทีช่อง On entry: ใส่คำสั่ง
EXECSCRIPT("Blobimage.PictureVal=STRCONV(TableBase.Pict , 14)")
*** TableBase.Pict คือชื่อตารางและฟิลด์ที่เก็บข้อมูล Base64
ทำการบันทึกรายงาน เป็นอันเสร็จเรียบร้อย
วิธีที่ 2
1. สร้างรายงาน จากนั้นนำคอนโทรล Picture/OLE มาใส่
double click กำหนดค่าในแท็บ General โดยคลิกเลือก Expression or variable name
ที่ช่อง Control Source: loRL.oBlobImage
** loRL คือชื่อ object และ oBlobImage คือชื่อ property
วิธีที่ 2
1. สร้างรายงาน จากนั้นนำคอนโทรล Picture/OLE มาใส่
double click กำหนดค่าในแท็บ General โดยคลิกเลือก Expression or variable name
ที่ช่อง Control Source: loRL.oBlobImage
** loRL คือชื่อ object และ oBlobImage คือชื่อ property
2. ทำการเขียนคำสั่ง เพื่อแสดงภาพในรายงาน ดังนี้
USE TableBase && ตารางที่มีข้อมูล Base64
SET REPORTBEHAVIOR 90
loRL = NEWOBJECT( 'PreviewListener' )
loRL.InitBLOBImage( )
loRL.LISTENERTYPE = 1 && Preview
REPORT FORM ชื่อรายงาน OBJECT loRL
RETURN
DEFINE CLASS PreviewListener AS REPORTLISTENER
oBlobImage = NULL
PROCEDURE InitBLOBImage(lpcBlobField AS STRING)
THIS.oBlobImage = NEWOBJECT( 'IMAGE' )
THIS.oBlobImage.PICTUREVAL = STRCONV(Tablebase.pict , 14)
ENDPROC
PROCEDURE BEFOREBAND( nBandObjCode, nFRXRecNo )
IF nBandObjCode = 4 && Detail band
THIS.oBlobImage.PICTUREVAL = STRCONV(Tablebase.pict , 14)
ENDIF
ENDPROC
ENDDEFINE
เสร็จสำหรับการจัดการแสดงผลภาพจาก Base64 ในรายงาน
สำหรับการนำเสนอวิธีการจัดการกับการเข้ารหัสด้วย Base64 ก็จบเพียงเท่านี้
สวัสดี ปีที่มีอากาศร้อนที่สุดๆๆๆๆ
USE TableBase && ตารางที่มีข้อมูล Base64
SET REPORTBEHAVIOR 90
loRL = NEWOBJECT( 'PreviewListener' )
loRL.InitBLOBImage( )
loRL.LISTENERTYPE = 1 && Preview
REPORT FORM ชื่อรายงาน OBJECT loRL
RETURN
DEFINE CLASS PreviewListener AS REPORTLISTENER
oBlobImage = NULL
PROCEDURE InitBLOBImage(lpcBlobField AS STRING)
THIS.oBlobImage = NEWOBJECT( 'IMAGE' )
THIS.oBlobImage.PICTUREVAL = STRCONV(Tablebase.pict , 14)
ENDPROC
PROCEDURE BEFOREBAND( nBandObjCode, nFRXRecNo )
IF nBandObjCode = 4 && Detail band
THIS.oBlobImage.PICTUREVAL = STRCONV(Tablebase.pict , 14)
ENDIF
ENDPROC
ENDDEFINE
เสร็จสำหรับการจัดการแสดงผลภาพจาก Base64 ในรายงาน
สำหรับการนำเสนอวิธีการจัดการกับการเข้ารหัสด้วย Base64 ก็จบเพียงเท่านี้
สวัสดี ปีที่มีอากาศร้อนที่สุดๆๆๆๆ
5 ความคิดเห็น:
ขอบคุณครับ
แจ่มเลย ขอบคุณครัย
ยอดเยี่ยมมากครับ
อาจารย์ครับรบกวนหน่อยครับ ถ้ารันผ่าน source รายงานแสดงภาพได้ แต่ถ้า compile แล้ว รันผ่าน exe ขึ้น error
Preperty PictureVal is not found.
ต้องแก้ไขอย่างไรครับ
แสดงความคิดเห็น