ספריית עיבוד תמונה בקוד פתוח ברמה גבוהה Go

Go API המאפשר סיבוב תמונות, Fit images, יצירת תמונות ממוזערות, הגדלה של התמונה, הטמעה או הרחבה של תמונה, הוסף אפקטי טשטוש לתמונה ועוד הרבה יותר.

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 תמונות מהספרייה

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 Library

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)

הוספת סימני מים לתמונות

ממשק API של bimg כלל פונקציונליות להוספת סימני מים לתמונות בתוך יישומי Go בקלות. הוספת סימן מים היא תכונה שימושית מאוד להגנה על התמונות שלך. סימון מים הוא הדרך הקלה והשימושית ביותר להגנה על התמונות שלך באינטרנט. אתה יכול בקלות למקם לוגו או סימן מים טקסט. הספרייה עוזרת לך להוסיף סימן מים לתמונה שלך באופן תוכנתי בכל מיקום שנבחר, כמו גם את האטימות.

הוספת סימן מים לתמונה באמצעות 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. יש שיטה לסיבוב תמונה אוטומטי. הפונקציה AutoRotate מסובבת אוטומטית את התמונה ללא טרנספורמציה נוספת בהתבסס על מטא-נתונים של כיוון EXIF, אם זמינים. זה גם מספק תמיכה בתמונות הפוך או פלופ, פרשנות תמונה, אורך תמונה, מטא נתונים של תמונה ועוד רבים.

תמונות רוטטות בתוך Apps

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)
 עִברִית