Go API สำหรับการประมวลผลรูปภาพที่ใช้ HTTP
Open Source Go Library ที่รองรับการครอบตัดอัจฉริยะออนไลน์ พลิกหรือหมุนรูปภาพ สร้างภาพขนาดย่อ การซูมภาพ เพิ่มลายน้ำลงใน PNG, WEBP, TIFF, PDF, GIF และ SVG เป็นต้น
จินตภาพเป็นโอเพ่นซอร์ส HTTP ที่ทรงพลังมากในการประมวลผลรูปภาพ Go API ที่ให้นักพัฒนาซอฟต์แวร์มีอำนาจในการดำเนินการรูปภาพขั้นสูงผ่านบริการ HTTP ส่วนตัวหรือสาธารณะที่มีการพึ่งพาน้อยลง รองรับการทำงานขั้นสูง เช่น การอนุญาตโทเค็น API, การป้องกันลายเซ็น URL, กลยุทธ์การควบคุมปริมาณการรับส่งข้อมูล HTTP และการสนับสนุน CORS สำหรับเว็บไคลเอ็นต์ ไลบรารีสามารถอ่านรูปภาพจากเพย์โหลด HTTP POST, พาธในเครื่องของเซิร์ฟเวอร์ หรือเซิร์ฟเวอร์ HTTP ระยะไกล
จินตภาพเป็นไลบรารีที่ทรงพลังและเสถียรซึ่งสร้างขึ้นบน libvips การประมวลผลภาพที่รวดเร็วและมีประสิทธิภาพ ไลบรารีได้รวมการรองรับรูปแบบรูปภาพ เช่น JPEG, PNG, HEIF, WEBP, TIFF, PDF, GIF และ SVG ตลอดจนการแปลงไฟล์เหล่านี้แบบโปร่งใส ได้ให้การสนับสนุนอย่างสมบูรณ์สำหรับ Docker & Fly.io สิ่งที่ยอดเยี่ยมเกี่ยวกับ Fly คือสามารถลดเวลาในการตอบสนองและให้แนวทางปฏิบัติที่ดีขึ้นโดยให้บริการการรับส่งข้อมูลใกล้กับตำแหน่งของผู้ใช้ของคุณ
ไลบรารีจินตภาพรองรับคุณสมบัติที่สำคัญหลายอย่างที่เกี่ยวข้องกับการสร้าง การแปลง และการปรับแต่งภาพอย่างเต็มที่ เช่น การปรับขนาดภาพ การขยายภาพ การครอบตัดภาพ การครอบตัดแบบอัจฉริยะ การหมุนภาพ การหมุนอัตโนมัติด้วยการแปลงภาพเพิ่มเติม การพลิกอัตโนมัติตามข้อมูลเมตา EXIF รูปภาพ ย่อ, ซูมภาพ, สร้างภาพขนาดย่อ, ปรับภาพ, ฝังหรือขยายภาพ, เพิ่มภาพลายน้ำ, เพิ่มเอฟเฟกต์เบลอให้กับภาพและอีกมากมาย
เริ่มต้นกับจินตภาพ
วิธีที่ง่ายที่สุดและแนะนำในการติดตั้งจินตภาพคือผ่าน GitHub
ติดตั้งจินตภาพผ่าน GitHub
go get -u github.com/h2non/imaginary
แปลงรูปภาพเป็นรูปแบบอื่นผ่าน Go
ไลบรารีจินตภาพ API แบบโอเพนซอร์สได้รวมการสนับสนุนสำหรับการแปลงรูปภาพของคุณเป็นรูปแบบไฟล์อื่นที่รองรับได้อย่างง่ายดาย คุณสามารถบันทึกรูปภาพในรูปแบบที่มีประโยชน์มาก เช่น รูปแบบ JPEG, PNG และ WEBP ไลบรารีได้ให้การสนับสนุนการแปลงด้วยการตั้งค่าคุณภาพและการบีบอัดเพิ่มเติม คุณเพียงแค่ต้องระบุชื่อรูปภาพ ที่อยู่ และรูปแบบการแปลงที่ถูกต้อง จากนั้นไลบรารี่จะแปลงให้คุณได้อย่างง่ายดายด้วยคำสั่ง Go เพียงไม่กี่คำสั่ง
แปลงภาพผ่านห้องสมุด Imaginary
func Convert(buf []byte, o ImageOptions) (Image, error) {
if o.Type == "" {
return Image{}, NewError("Missing required param: type", http.StatusBadRequest)
}
if ImageType(o.Type) == bimg.UNKNOWN {
return Image{}, NewError("Invalid image type: "+o.Type, http.StatusBadRequest)
}
opts := BimgOptions(o)
return Process(buf, opts)
}
การครอบตัดรูปภาพออนไลน์ผ่าน Go
ไลบรารีจินตภาพโอเพนซอร์สช่วยให้นักพัฒนาซอฟต์แวร์สามารถครอบตัดรูปภาพออนไลน์ด้วยโค้ด Go เพียงไม่กี่บรรทัดในแอปพลิเคชันของตนเอง คุณสามารถครอบตัดรูปภาพของคุณโดยระบุความกว้างหรือความสูงที่กำหนดเอง ห้องสมุดทำให้งานของคุณง่ายขึ้นด้วยการรักษาอัตราส่วนภาพ ไลบรารียังสนับสนุนการครอบตัดรูปภาพโดยใช้อัลกอริธึมการครอบตัดอัจฉริยะในตัว libvips คุณยังสามารถกำหนดระดับการบีบอัดรูปภาพสำหรับรูปภาพ PNG และพลิก ปัด และหมุนรูปภาพของคุณได้อย่างง่ายดาย
ภาพหล่นผ่านห้องสมุด Go
{
"operation": "crop",
"params": {
"width": 500,
"height": 300
}
ปรับขนาดรูปภาพให้พอดี
ไลบรารีจินตภาพฟรีได้รวมการรองรับการปรับขนาดรูปภาพให้พอดีโดยใช้คำสั่ง Go ภายในแอพของพวกเขา คุณสามารถปรับขนาดรูปภาพให้พอดีกับความกว้างและความสูงได้อย่างง่ายดายโดยไม่ต้องครอบตัด ห้องสมุดทำให้งานของคุณง่ายขึ้นด้วยการรักษาอัตราส่วนภาพ ความกว้างและความสูงระบุกรอบขอบเขตสูงสุดสำหรับรูปภาพ
ปรับขนาดภาพผ่านห้องสมุด Go ฟรี
func Resize(buf []byte, o ImageOptions) (Image, error) {
if o.Width == 0 && o.Height == 0 {
return Image{}, NewError("Missing required param: height or width", http.StatusBadRequest)
}
opts := BimgOptions(o)
opts.Embed = true
if o.IsDefinedField.NoCrop {
opts.Crop = !o.NoCrop
}
return Process(buf, opts)
}
หมุนและหมุนรูปภาพของคุณโดยอัตโนมัติ
ไลบรารีจินตภาพฟรีมีฟังก์ชันสำหรับการหมุนภาพของคุณอย่างง่ายดาย นอกจากนี้ยังมีฟังก์ชันที่มีประโยชน์มากสำหรับการหมุนรูปภาพอัตโนมัติในแอปพลิเคชัน Go โดยจะหมุนภาพโดยอัตโนมัติโดยไม่มีการแปลงภาพเพิ่มเติมตามข้อมูลเมตาของการวางแนว EXIF วิธีการหมุนอัตโนมัติจะสร้างภาพใหม่ที่มีขนาดและรูปแบบเดียวกันกับภาพที่ป้อนเข้า
Auto-Rotate ภาพผ่านห้องสมุด Go ฟรี
func AutoRotate(buf []byte, o ImageOptions) (out Image, err error) {
defer func() {
if r := recover(); r != nil {
switch value := r.(type) {
case error:
err = value
case string:
err = errors.New(value)
default:
err = errors.New("libvips internal error")
}
out = Image{}
}
}