Mergi
GO API สำหรับการปรับแต่งรูปภาพขั้นสูง
ไลบรารี Open Source Go เพื่อรวม ครอบตัด และปรับขนาดรูปภาพโดยทางโปรแกรม คุณสามารถเพิ่มลายน้ำและแอนิเมชั่นให้กับรูปภาพภายในแอพของคุณเองได้
Mergi เป็นไลบรารี go อันทรงพลังที่ให้ความสามารถในการประมวลผลภาพโดยทางโปรแกรมโดยใช้ภาษา GO ห้องสมุดมีการจัดระเบียบอย่างดีและสามารถรวมเข้ากับการดำเนินการต่างๆ ได้อย่างง่ายดายด้วยโค้ด Go เพียงไม่กี่บรรทัด ห้องสมุดสามารถใช้ได้ฟรีภายใต้ใบอนุญาต MIT และสามารถใช้ภายในโครงการของคุณได้อย่างง่ายดาย
ไลบรารี Mergi แบบโอเพ่นซอร์สได้รวมการสนับสนุนอย่างสมบูรณ์สำหรับคุณสมบัติการประมวลผลภาพที่สำคัญหลายอย่าง เช่น การรวมรูปภาพ การรองรับการครอบตัดรูปภาพ การปรับขนาดรูปภาพ การเพิ่มลายน้ำให้กับรูปภาพของคุณ สิ่งอำนวยความสะดวกแอนิเมชั่นรูปภาพ การทำให้รูปภาพง่ายขึ้น การเพิ่มการเปลี่ยนไปยังรูปภาพ และอื่นๆ อีกมากมาย
เริ่มต้นใช้งาน Mergi
วิธีที่ง่ายที่สุดในการติดตั้ง Mergi คือการใช้ผ่าน GitHub โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่ราบรื่น
ติดตั้ง Mergi ผ่าน GitHub
$ go get github.com/noelyahan/mergi
สร้างภาพเคลื่อนไหวผ่าน Go API
ไลบรารี Mergi แบบโอเพ่นซอร์สช่วยให้นักพัฒนาซอฟต์แวร์สามารถสร้างภาพเคลื่อนไหวให้กับผลลัพธ์ของอาร์เรย์รูปภาพภายในแอปพลิเคชัน GO ของตนเองได้ คุณต้องระบุเส้นทางที่ถูกต้องของรูปภาพหรือ URL ของเส้นทางไฟล์ จากนั้นคุณต้องส่งรูปภาพไปยังอาร์เรย์และใช้การหน่วงเวลาตามความต้องการของคุณ ในท้ายที่สุด คุณสามารถส่งออกผลลัพธ์สุดท้ายผ่านตัวส่งออกแอนิเมชันเพื่อรับไฟล์ GIF ที่เป็นผลลัพธ์
ภาพเคลื่อนไหวผ่าน Go API
func Animate(imgs []image.Image, delay int) (gif.GIF, error) {
for i, v := range imgs {
if v == nil {
msg := fmt.Sprintf("Mergi found a error image=[%v] on %d", v, i)
return gif.GIF{}, errors.New(msg)
}
}
delays := make([]int, 0)
for i := 0; i < len(imgs); i++ {
delays = append(delays, delay)
}
images := encodeImgPaletted(&imgs)
return gif.GIF{
Image: images,
Delay: delays,
}, nil
}
การครอบตัดรูปภาพผ่าน Go API
รูปภาพที่สมบูรณ์แบบสามารถพูดได้เป็นพันคำ การครอบตัดรูปภาพเป็นการนำพื้นที่ที่ไม่ต้องการของรูปภาพออกเพื่อสร้างโฟกัสหรือทำให้รูปภาพดูเข้มขึ้น ไลบรารี Mergi ช่วยให้โปรแกรมเมอร์ซอฟต์แวร์สามารถครอบตัดรูปภาพภายในแอปพลิเคชัน Go ของตนเองได้ นักพัฒนาต้องระบุความกว้างและความสูงของรูปภาพและตำแหน่งที่ต้องการ
ตัดภาพผ่านไป API
var errCrop = errors.New("Mergi found a error image on Crop")
var errCropBound = errors.New("Mergi expects more than 0 value for bounds")
func Animate(imgs []image.Image, delay int) (gif.GIF, error) {
for i, v := range imgs {
if v == nil {
msg := fmt.Sprintf("Mergi found a error image=[%v] on %d", v, i)
return gif.GIF{}, errors.New(msg)
}
}
delays := make([]int, 0)
for i := 0; i < len(imgs); i++ {
delays = append(delays, delay)
}
images := encodeImgPaletted(&imgs)
return gif.GIF{
Image: images,
Delay: delays,
}, nil
}
ลายน้ำนอกเหนือจากรูปภาพ
ไลบรารี Mergi ฟรีช่วยให้โปรแกรมเมอร์ซอฟต์แวร์สามารถแทรกลายน้ำลงในรูปภาพภายในแอปพลิเคชัน Go ได้อย่างง่ายดาย ด้วยการใช้คุณลักษณะลายน้ำ เราสามารถปกป้อง ของเรา ภาพของเราจากการสร้างและแจกจ่ายสำเนาโดยไม่ได้รับอนุญาต ห้องสมุดรองรับการวางโลโก้และลายน้ำข้อความโดยใช้โค้ด Go สองสามบรรทัด คุณสามารถวางลายน้ำในตำแหน่งที่คุณเลือกได้เช่นเดียวกับความทึบที่คุณเลือก
เพิ่มลายน้ําให้กับภาพผ่านไป API
originalImage, _ := mergi.Import(impexp.NewFileImporter("./testdata/mergi_bg_1.png"))
watermarkImage, _ := mergi.Import(impexp.NewFileImporter("./testdata/glass-mergi_logo_watermark_90x40.jpg"))
res, _ := mergi.Watermark(watermarkImage, originalImage, image.Pt(250, 10))
mergi.Export(impexp.NewFileExporter(res, "watermark.png"))
รองรับการรวมรูปภาพ
ไลบรารี Mergi ช่วยให้นักพัฒนาสามารถรวมภาพหลายภาพเป็นภาพเดียวได้ตามความต้องการโดยใช้คำสั่งการเขียนโปรแกรม Go ไลบรารีรองรับการรวมหลายภาพตามเทมเพลตที่กำหนด รองรับการรวมแนวนอนและสิ่งอำนวยความสะดวกการผสานแนวตั้ง หากต้องการรวมภาพสองภาพ คุณต้องระบุเส้นทางของภาพหรือ URL ที่ถูกต้อง หลังจากนั้น คุณสามารถเลือกเทมเพลตเพื่อรวมภาพในแนวนอนหรือแนวตั้งได้
รวมรูปภาพผ่าน Go API
image1, _ := mergi.Import(impexp.NewFileImporter("./testdata/mergi_bg_1.png"))
image2, _ := mergi.Import(impexp.NewFileImporter("./testdata/mergi_bg_2.png"))
horizontalImage, _ := mergi.Merge("TT", []image.Image{image1, image2})
mergi.Export(impexp.NewFileExporter(horizontalImage, "horizontal.png"))
verticalImage, _ := mergi.Merge("TB", []image.Image{image1, image2})
mergi.Export(impexp.NewFileExporter(verticalImage, "vertical.png"))