Bibliotecă Go open source pentru crearea și manipularea imaginilor
Puternic Go API care acceptă Redimensionați, Decupați și Rotiți imagini JPEG, PNG, GIF, TIFF și BMP. De asemenea, puteți regla luminozitatea imaginii, contrastul, corecția gama imaginilor.
API-ul Go Imaging open source este un pachet foarte puternic care oferă funcționalități complete legate de crearea și manipularea imaginilor. Biblioteca este foarte flexibilă și permite dezvoltatorilor să creeze cu ușurință imagini noi și să le modifice pe cele existente cu doar câteva linii de cod.
Imaging este o bibliotecă Go pură, care are dimensiuni reduse și funcționalitate eficientă. Acesta a inclus suport pentru mai multe formate importante de fișiere imagine, cum ar fi JPEG, PNG, GIF, TIFF, BMP și multe altele. Biblioteca a inclus și câteva filtre de reeșantionare pentru redimensionarea imaginii. Unele filtre importante sunt NearestNeighbor, Lanczos, CatmullRom, MitchellNetravali, Linear, Box și așa mai departe. De asemenea, biblioteca a facilitat dezvoltatorilor să creeze filtre personalizate.
Biblioteca gratuită Imaging a inclus câteva caracteristici importante legate de procesarea imaginilor, cum ar fi redimensionarea imaginilor, rotația imaginii, decuparea imaginii, reglarea luminozității imaginii, ajustările contrastului imaginii, corecția gama a imaginilor, modificarea saturației imaginii, clonarea imaginilor, imaginea. estompați, codificați și decodați imaginile, suprapunerea imaginilor, adăugați claritate, creați miniaturi și multe alte caracteristici.
Noțiuni introductive cu imagistica
Cel mai simplu și recomandat mod de a instala Imagingis prin GitHub.
Instalați Imaging prin GitHub
go get -u github.com/disintegration/imaging
Generați o nouă imagine prin Go API
Biblioteca de imagini open source a inclus suport pentru generarea de noi imagini în cadrul propriei aplicații folosind comenzile Go. Crearea noii imagini necesită lățimea, înălțimea imaginii, culoarea de fundal a imaginii și formatul de ieșire al imaginii. De asemenea, puteți modifica cu ușurință imaginea creată și puteți efectua diferite operații, cum ar fi răsturnarea, setarea opacității, amestecarea, estomparea și multe altele.
Generați o nouă imagine prin Go API
func New(width, height int, fillColor color.Color) *image.NRGBA {
if width <= 0 || height <= 0 {
return &image.NRGBA{}
}
c := color.NRGBAModel.Convert(fillColor).(color.NRGBA)
if (c == color.NRGBA{0, 0, 0, 0}) {
return image.NewNRGBA(image.Rect(0, 0, width, height))
}
return &image.NRGBA{
Pix: bytes.Repeat([]byte{c.R, c.G, c.B, c.A}, width*height),
Stride: 4 * width,
Rect: image.Rect(0, 0, width, height),
}
}
Conversia imaginii în alte formate prin Go
Dezvoltatorii de software își pot converti cu ușurință imaginile în alte formate de fișiere acceptate în cadrul propriilor aplicații GO folosind o bibliotecă de imagini gratuită. Trebuie doar să furnizați numele imaginii și formatul imaginii de ieșire. Folosind funcția Salvare, puteți exporta cu ușurință imaginile în mai multe alte formate de fișier imagine acceptate, cum ar fi PNG, BMP, GIF, JPEG, TIFF și multe altele.
Redimensionați și decupați imaginile
API-ul Free imaging a inclus funcționalități pentru redimensionarea imaginilor în funcție de nevoile dvs. folosind comenzile Go. Mai întâi, trebuie să deschideți o imagine și să furnizați înălțimea, precum și lățimea imaginii pentru a o redimensiona. O altă opțiune este că puteți redimensiona imaginea furnizând doar lățime prin păstrarea raportului de aspect. Biblioteca permite, de asemenea, decuparea imaginii originale, oferind lățime, înălțime personalizate și folosind ancora centrală.
Crop Resize Image via Go API
func cropAndResize(img image.Image, width, height int, anchor Anchor, filter ResampleFilter) *image.NRGBA {
dstW, dstH := width, height
srcBounds := img.Bounds()
srcW := srcBounds.Dx()
srcH := srcBounds.Dy()
srcAspectRatio := float64(srcW) / float64(srcH)
dstAspectRatio := float64(dstW) / float64(dstH)
var tmp *image.NRGBA
if srcAspectRatio < dstAspectRatio {
cropH := float64(srcW) * float64(dstH) / float64(dstW)
tmp = CropAnchor(img, srcW, int(math.Max(1, cropH)+0.5), anchor)
} else {
cropW := float64(srcH) * float64(dstW) / float64(dstH)
tmp = CropAnchor(img, int(math.Max(1, cropW)+0.5), srcH, anchor)
}
return Resize(tmp, dstW, dstH, filter)
}
Întoarceți, rotiți, estompați și clonați imagini
Biblioteca Imaging a inclus câteva caracteristici importante pentru manipularea imaginii, cum ar fi răsturnarea imaginii, rotirea imaginii, estomparea și clonarea. Pentru a face o copie a unei imagini existente, trebuie doar să apelați funcția Clonare și să furnizați imaginea existentă. Biblioteca acceptă și rotirea și răsturnarea imaginii cu doar câteva linii de cod. Puteți roti cu ușurință o imagine după unghiul dat în sens invers acelor de ceasornic. Parametrul unghiului este unghiul de rotație în grade.
Sursă foto: Go API
func Clone(img image.Image) *image.NRGBA {
src := newScanner(img)
dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h))
size := src.w * 4
parallel(0, src.h, func(ys <-chan int) {
for y := range ys {
i := y * dst.Stride
src.scan(0, y, src.w, y+1, dst.Pix[i:i+size])
}
})
return dst
}