ไลบรารีการประมวลผลรูปภาพระดับสูงแบบโอเพนซอร์ส

Go API ที่อนุญาตให้หมุนรูปภาพ ปรับรูปภาพให้พอดี สร้างภาพขนาดย่อของรูปภาพ ซูมรูปภาพ ฝังหรือขยายรูปภาพ เพิ่มเอฟเฟกต์เบลอให้กับรูปภาพ และอื่นๆ อีกมากมาย

bimg เป็นไลบรารี Go การประมวลผลภาพระดับสูงแบบโอเพนซอร์สที่ให้ความสามารถในการอ่านและจัดการรูปภาพด้วยโค้ด Go เพียงไม่กี่บรรทัด ห้องสมุดมีขนาดเล็กลง แต่ให้ผลลัพธ์ที่มีการจัดการเป็นอย่างดีและมีประสิทธิภาพ ห้องสมุดมีความรวดเร็วมากเมื่อเทียบกับไลบรารีอื่น ๆ ที่พร้อมใช้งานซึ่งต้องการหน่วยความจำขนาดเล็กมากในการทำงานให้เสร็จสิ้น

bimg เป็นไลบรารี C ระดับสูงที่สร้างขึ้นบน libvips ซึ่งเป็นไลบรารีที่ทรงพลังมากสำหรับการประมวลผลภาพ รองรับการอ่านรูปแบบไฟล์รูปภาพยอดนิยมบางรูปแบบ เช่น JPEG, PNG, WEBP, TIFF, PDF, GIF, SVG เป็นต้น คุณยังสามารถส่งออกรูปภาพไปยังรูปแบบ JPEG, PNG, WEBP รวมถึงรูปภาพแบบโปร่งใสได้อย่างง่ายดาย

ไลบรารี bimg ได้รวมการรองรับคุณสมบัติการประมวลผลภาพที่สำคัญหลายประการ เช่น การปรับขนาดภาพ การขยายภาพ การครอบตัดภาพรวมถึงการรองรับการครอบตัดแบบอัจฉริยะ การพลิกหรือหมุนภาพ การสร้างภาพขนาดย่อ การรองรับการซูมภาพ การเพิ่มลายน้ำและเอฟเฟกต์เบลอแบบเกาส์เซียน แยกเฉพาะ พื้นที่จากรูปภาพ ตัดแต่งรูปภาพ แปลงรูปภาพเป็นรูปแบบอื่น ๆ และอื่น ๆ อีกมากมาย

Previous Next

เริ่มต้นกับbimg

วิธีที่ง่ายที่สุดและแนะนำในการติดตั้ง bimg คือผ่าน GitHub

ติดตั้ง bimg ผ่าน GitHub

 go get -u gopkg.in/h2non/bimg.v1

การแปลงรูปภาพเป็นรูปแบบอื่นผ่าน Go

ไลบรารี bimg แบบโอเพ่นซอร์สช่วยให้นักพัฒนาซอฟต์แวร์สามารถแปลงรูปภาพเป็นรูปแบบไฟล์อื่นที่สนับสนุนโดยทางโปรแกรมโดยใช้โค้ด Go เพียงไม่กี่บรรทัด สมมติว่าคุณมีรูปแบบ JPEG และต้องการแปลงเป็น PNG คุณต้องระบุข้อมูลรูปภาพ เช่น ชื่อรูปภาพ ที่อยู่ และรูปแบบการแปลง รูปภาพจะถูกแปลงเป็นรูปแบบที่แนะนำได้อย่างง่ายดาย

แปลง JPG ภาพเป็น NG ผ่านห้องสมุด Go

buffer, err := bimg.Read("image.jpg")
if err != nil {
  fmt.Fprintln(os.Stderr, err)
}
newImage, err := bimg.NewImage(buffer).Convert(bimg.PNG)
if err != nil {
  fmt.Fprintln(os.Stderr, err)
}
if bimg.NewImage(newImage).Type() == "png" {
  fmt.Fprintln(os.Stderr, "The image was converted into png")
}

ครอบตัดหรือปรับขนาดรูปภาพ

ไลบรารี bimg ฟรีช่วยให้นักพัฒนาซอฟต์แวร์สามารถปรับขนาดและครอบตัดรูปภาพภายในแอปพลิเคชัน Go ของตนเองได้ คุณต้องระบุความกว้างและความสูงของรูปภาพและตำแหน่งใหม่ด้วย นอกจากนี้ยังรองรับการบังคับการปรับขนาดโดยไม่รักษาอัตราส่วนภาพไว้ คุณยังสามารถเพิ่มข้อความและแยกพื้นที่ที่คุณเลือกจากรูปภาพได้อีกด้วย ครอบตัดรูปภาพตามขนาดที่ระบุ

ปรับขนาดภาพผ่านห้องสมุด Go

buffer, err := bimg.Read("image.jpg")
if err != nil {
  fmt.Fprintln(os.Stderr, err)
}
newImage, err := bimg.NewImage(buffer).Resize(800, 600)
if err != nil {
  fmt.Fprintln(os.Stderr, err)
}
size, err := bimg.NewImage(newImage).Size()
if size.Width == 800 && size.Height == 600 {
  fmt.Println("The image size is valid")
}
bimg.Write("new.jpg", newImage)

การเพิ่มลายน้ำให้กับรูปภาพ

bimg API ได้รวมฟังก์ชันสำหรับการเพิ่มลายน้ำให้กับรูปภาพภายในแอปพลิเคชัน Go อย่างง่ายดาย การเพิ่มลายน้ำเป็นคุณสมบัติที่มีประโยชน์มากในการปกป้องรูปภาพของคุณ ลายน้ำเป็นวิธีที่ง่ายที่สุดและมีประโยชน์มากในการปกป้องภาพถ่ายของคุณบนอินเทอร์เน็ต คุณสามารถวางโลโก้หรือลายน้ำข้อความได้อย่างง่ายดาย ไลบรารีช่วยให้คุณเพิ่มลายน้ำโดยทางโปรแกรมให้กับรูปภาพของคุณในตำแหน่งที่เลือกตลอดจนความทึบ

เพิ่มลายน้ําให้กับภาพผ่านไป API

buffer, err := bimg.Read("image.jpg")
if err != nil {
  fmt.Fprintln(os.Stderr, err)
}
watermark := bimg.Watermark{
  Text:       "Chuck Norris (c) 2315",
  Opacity:    0.25,
  Width:      200,
  DPI:        100,
  Margin:     150,
  Font:       "sans bold 12",
  Background: bimg.Color{255, 255, 255},
}
newImage, err := bimg.NewImage(buffer).Watermark(watermark)
if err != nil {
  fmt.Fprintln(os.Stderr, err)
}
bimg.Write("new.jpg", newImage)

พลิกและหมุนรูปภาพ

ไลบรารี bimg แบบโอเพ่นซอร์สช่วยให้นักพัฒนาซอฟต์แวร์สามารถหมุนภาพตามความต้องการโดยใช้คำสั่งภาษา Go มีวิธีการหมุนภาพอัตโนมัติ ฟังก์ชันหมุนอัตโนมัติจะหมุนรูปภาพโดยอัตโนมัติโดยไม่มีการเปลี่ยนแปลงเพิ่มเติมตามข้อมูลเมตาของการวางแนว EXIF หากมี นอกจากนี้ยังรองรับภาพพลิกหรือพลิก การตีความภาพ ความยาวของภาพ ข้อมูลเมตาของภาพ และอื่นๆ อีกมากมาย

หมุนภาพภายในแอป Go

buffer, err := bimg.Read("image.jpg")
if err != nil {
  fmt.Fprintln(os.Stderr, err)
}
newImage, err := bimg.NewImage(buffer).Rotate(90)
if err != nil {
  fmt.Fprintln(os.Stderr, err)
}
bimg.Write("new.jpg", newImage)
 ไทย