Atvērtā pirmkoda Go bibliotēka attēlu izveidei un manipulācijām
Jaudīga Go API, kas atbalsta JPEG, PNG, GIF, TIFF un BMP attēlu izmēru maiņu, apgriešanu un pagriešanu. Varat arī pielāgot attēla spilgtumu, kontrastu, attēlu gamma korekciju.
Atvērtā koda Go Imaging API ir ļoti jaudīga pakotne, kas nodrošina pilnīgu funkcionalitāti saistībā ar attēlu izveidi un manipulācijām. Bibliotēka ir ļoti elastīga un ļauj izstrādātājiem viegli izveidot jaunus attēlus un modificēt esošos tikai ar pāris koda rindiņām.
Attēlveidošana ir tīra Go bibliotēka, kas ir maza izmēra un efektīva funkcionalitātē. Tas ir iekļāvis atbalstu vairākiem svarīgiem attēlu failu formātiem, piemēram, JPEG, PNG, GIF, TIFF, BMP un daudziem citiem. Bibliotēkā ir iekļauti arī vairāki resampling filtri attēla izmēru maiņai. Daži svarīgi filtri ir NearestNeighbor, Lanczos, CatmullRom, MitchellNetravali, Linear, Box un tā tālāk. Bibliotēka ir arī palīdzējusi izstrādātājiem izveidot pielāgotus filtrus.
Bezmaksas attēlveidošanas bibliotēkā ir iekļautas vairākas svarīgas funkcijas, kas saistītas ar attēlu apstrādi, piemēram, attēlu izmēru maiņa, attēla pagriešana, attēla apgriešana, attēla spilgtuma pielāgošana, attēla kontrasta regulēšana, attēlu gamma korekcija, attēla piesātinājuma maiņa, attēlu klonēšana, attēls aizmiglojiet, kodējiet un atkodējiet attēlus, pārklājiet attēlus, pievienojiet asumu, izveidojiet sīktēlus un daudzas citas funkcijas.
Darba sākšana ar attēlveidošanu
Vienkāršākais un ieteicamākais veids, kā instalēt Imagingis, izmantojot GitHub.
Instalējiet attēlu, izmantojot GitHub
go get -u github.com/disintegration/imaging
Ģenerējiet jaunu attēlu, izmantojot Go API
Atvērtā koda attēlu bibliotēkā ir iekļauts atbalsts jaunu attēlu ģenerēšanai savā lietojumprogrammā, izmantojot komandas Go. Jaunā attēla izveidei nepieciešams attēla platums, augstums, attēla fona krāsa un attēla izvades formāts. Varat arī viegli modificēt izveidoto attēlu un veikt dažādas darbības, piemēram, apvērst, iestatīt necaurredzamību, sapludināt, aizmiglot un daudz ko citu.
Ģenerējiet jaunu attēlu, izmantojot 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),
}
}
Attēlu konvertēšana citos formātos, izmantojot Go
Programmatūras izstrādātāji var viegli pārvērst savus attēlus citos atbalstītos failu formātos savās GO Apps programmās, izmantojot bezmaksas attēlu bibliotēku. Jums vienkārši jānorāda attēla nosaukums un izvades attēla formāts. Izmantojot funkciju Saglabāt, varat viegli eksportēt attēlus uz vairākiem citiem atbalstītiem attēlu failu formātiem, piemēram, PNG, BMP, GIF, JPEG, TIFF un citiem.
Mainīt un apgriezt attēlus
Bezmaksas attēlveidošanas API ir iekļāvusi funkcionalitāti attēlu izmēru maiņai atbilstoši jūsu vajadzībām, izmantojot komandas Go. Pirmkārt, jums ir jāatver attēls un jānorāda attēla augstums un platums, lai mainītu tā izmēru. Vēl viena iespēja ir, ka varat mainīt attēla izmēru, vienkārši nodrošinot platumu, saglabājot malu attiecību. Bibliotēka ļauj arī apgriezt oriģinālo attēlu, nodrošinot pielāgotu platumu, augstumu un izmantojot centrālo enkuru.
Apgrieziet attēlu un mainiet tā izmēru, izmantojot 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)
}
Apgriezt, pagriezt, aizmiglot un klonēt attēlus
Attēlveidošanas bibliotēkā ir iekļautas vairākas svarīgas attēlu manipulācijas funkcijas, piemēram, attēlu apgriešana, attēla pagriešana, aizmiglošana un klonēšana. Lai izveidotu esoša attēla kopiju, jums vienkārši jāizsauc funkcija Clone un jāiesniedz esošais attēls. Bibliotēka atbalsta arī attēla pagriešanu un apvēršanu, izmantojot tikai dažas koda rindiņas. Jūs varat viegli pagriezt attēlu norādītajā leņķī pretēji pulksteņrādītāja virzienam. Leņķa parametrs ir griešanās leņķis grādos.
Klonēt attēlu, izmantojot 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
}