So konvertieren Sie Bilder mit Golang in Schwarzweiß- und Halbtoneffekte.
Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Bildverarbeitung zu einem immer wichtigeren Bereich geworden. In der Bildverarbeitung ist die Umwandlung von Farbbildern in Schwarzweiß- oder Halbtoneffekte ein üblicher Vorgang. In diesem Artikel wird erläutert, wie Sie mit der Programmiersprache Golang Bilder in Schwarzweiß- und Halbtoneffekte konvertieren.
Zuerst müssen wir die notwendigen Pakete importieren. In Golang können Sie die Pakete image und image/color verwenden, um Bildverarbeitungsvorgänge durchzuführen. Der Code lautet wie folgt:
package main import ( "image" "image/color" "image/jpeg" "log" "os" )
Als nächstes können wir eine Funktion zum Lesen der Bilddatei definieren. Der Code lautet wie folgt:
func loadImage(filename string) (image.Image, error) { file, err := os.Open(filename) if err != nil { return nil, err } defer file.Close() img, err := jpeg.Decode(file) if err != nil { return nil, err } return img, nil }
Dann können wir eine Funktion definieren, um das Farbbild in einen Schwarzweißeffekt umzuwandeln. Dies kann durch die Verarbeitung jedes Pixels des Bildes erreicht werden. Der Code lautet wie folgt:
func toGrayscale(img image.Image) *image.Gray { bounds := img.Bounds() gray := image.NewGray(bounds) for y := bounds.Min.Y; y < bounds.Max.Y; y++ { for x := bounds.Min.X; x < bounds.Max.X; x++ { oldColor := img.At(x, y) grayColor := color.GrayModel.Convert(oldColor) gray.Set(x, y, grayColor) } } return gray }
Als nächstes können wir eine Funktion definieren, um das Farbbild in einen Halbtoneffekt umzuwandeln. Der Halbtoneffekt kann erreicht werden, indem jedes Pixel des Bildes verarbeitet und in einen begrenzten Satz von Farbwerten umgewandelt wird. Der Code lautet wie folgt:
func toHalftone(img image.Image) *image.Gray16 { bounds := img.Bounds() halftone := image.NewGray16(bounds) for y := bounds.Min.Y; y < bounds.Max.Y; y++ { for x := bounds.Min.X; x < bounds.Max.X; x++ { oldColor := img.At(x, y) halftoneColor := color.Gray16Model.Convert(oldColor) halftone.Set(x, y, halftoneColor) } } return halftone }
Schließlich können wir eine Funktion definieren, um das konvertierte Bild zu speichern. Der Code lautet wie folgt:
func saveImage(img image.Image, filename string) error { file, err := os.Create(filename) if err != nil { return err } defer file.Close() err = jpeg.Encode(file, img, nil) if err != nil { return err } return nil }
Jetzt können wir eine Hauptfunktion schreiben, um die obige Funktion aufzurufen und zu testen. Der Code lautet wie folgt:
func main() { // 读取图片文件 img, err := loadImage("input.jpg") if err != nil { log.Fatal(err) } // 转换为黑白效果 gray := toGrayscale(img) err = saveImage(gray, "output_gray.jpg") if err != nil { log.Fatal(err) } // 转换为半色调效果 halftone := toHalftone(img) err = saveImage(halftone, "output_halftone.jpg") if err != nil { log.Fatal(err) } log.Println("图片转换完成") }
Durch Ausführen des obigen Codes können wir die Eingabebilddatei in Schwarzweiß- und Halbtoneffekte konvertieren und sie als Dateien „output_gray.jpg“ und „output_halftone.jpg“ speichern.
Oben erfahren Sie, wie Sie mit Golang Bilder in Schwarzweiß- und Halbtoneffekte umwandeln. Mit diesen einfachen Codebeispielen können wir Bildverarbeitungsfunktionen problemlos in Golang implementieren. Ich hoffe, dieser Artikel hilft Ihnen!
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Bilder mit Golang in Schwarzweiß- und Halbtoneffekte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!