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 รูปภาพ ย่อ, ซูมภาพ, สร้างภาพขนาดย่อ, ปรับภาพ, ฝังหรือขยายภาพ, เพิ่มภาพลายน้ำ, เพิ่มเอฟเฟกต์เบลอให้กับภาพและอีกมากมาย

Previous Next

เริ่มต้นกับจินตภาพ

วิธีที่ง่ายที่สุดและแนะนำในการติดตั้งจินตภาพคือผ่าน 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{}
		}
	}
 ไทย