Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menukar fon dengan Golang

Bagaimana untuk menukar fon dengan Golang

PHPz
PHPzasal
2023-04-11 09:14:27781semak imbas

Golang ialah bahasa pengaturcaraan yang pantas dan mudah yang telah mendapat perhatian dan penggunaan yang semakin meluas sejak beberapa tahun kebelakangan ini. Dalam pengaturcaraan asas Golang, selalunya perlu menukar fon teks Artikel ini akan memperkenalkan cara menggunakan Golang untuk menukar fon.

Langkah asas untuk menukar fon ialah:

  1. Muat turun fon
  2. Pasang fon ke komputer anda
  3. Gunakan Golang untuk mencetak dan gunakan fon

Langkah pertama: Muat turun fon

Terdapat banyak cara untuk memuat turun fon, tetapi cara paling mudah ialah memuat turunnya dalam talian dan memilih fon yang memenuhi keperluan anda. Selepas memuat turun fon, kami perlu mengalihkannya ke folder projek Golang kami.

Langkah 2: Pasang fon pada komputer

Fail fon biasanya mempunyai akhiran .ttf atau .otf Di bawah sistem Windows, kami boleh menyalin fail fon ini ke Fon folder sistem pengendalian . Di bawah sistem Mac, kita perlu menyalin fail fon ke folder /Library/Fonts atau ~/Library/Fonts.

Langkah 3: Cetak dan gunakan fon dengan Golang

Golang menyediakan cara untuk mengeluarkan fon dalam konsol. Kita boleh menggunakan fungsi Println dalam pakej fmt terbina dalam di Golang untuk mencetak rentetan dengan fon yang diubah. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kita perlu menggunakan fon yang dipasang pada langkah kedua untuk mencetak output.

Kod sampel adalah seperti berikut:

package main

import (
    "fmt"
    "golang.org/x/image/font"
    "golang.org/x/image/font/basicfont"
    "golang.org/x/image/font/inconsolata"
    "golang.org/x/image/font/opentype"
    "image"
    "image/color"
    "image/draw"
    "image/png"
    "io/ioutil"
    "os"
)

func main() {
    tempFile, err := downloadFontTemporarily()
    if err != nil {
        fmt.Printf("Failed to download the font: %v", err)
        return
    }
    // Cleanup the temp file.
    defer os.Remove(tempFile.Name())

    fontBytes, err := ioutil.ReadFile(tempFile.Name())
    if err != nil {
        fmt.Printf("Failed to read the font: %v", err)
        return
    }

    // Parse the font, allowing for a variety of font types.
    f, err := opentype.Parse(fontBytes)
    if err != nil {
        fmt.Printf("Failed to parse the font: %v", err)
        return
    }

    const size = 72
    d := &font.Drawer{
        Dst:  draw.NewRGBA(image.Rect(0, 0, 1024, 1024)),
        Src:  image.NewUniform(color.White),
        Face: truetype.NewFace(f, &truetype.Options{Size: size}),
    }
    d.Dot = fixed.Point26_6{
        X: (fixed.I(10)),
        Y: (fixed.I(50)),
    }
    d.DrawString("Hello World!")

    img := d.Dst.(*draw.RGBA)
    png.Encode(os.Stdout, img)
}

func downloadFontTemporarily() (*os.File, error) {
    // Download a font so we can draw it.
    resp, err := http.Get("https://storage.googleapis.com/golang/go1.9beta1.linux-amd64.tar.gz")
    if err != nil {
        return nil, fmt.Errorf("Failed to open source image: %v", err)
    }

    // Write the file to a temporary directory so `font.OpenType` can use it.
    tempFile, err := ioutil.TempFile("", "font.ttf")
    if err != nil {
        return nil, fmt.Errorf("Failed to create temp file: %v", err)
    }

    // Cleanup the temporary file,
    defer os.Remove(tempFile.Name())

    if _, err = io.Copy(tempFile, resp.Body); err != nil {
        return nil, fmt.Errorf("Failed to write font to temp file: %v", err)
    }

    // Seek back to the start of the file so it can be read again later.
    if _, err = tempFile.Seek(0, io.SeekStart); err != nil {
        return nil, fmt.Errorf("Failed to seek to start of temporary file: %v", err)
    }

    return tempFile, nil
}

Ini ialah program contoh yang mencetak rentetan "Hello World!" Ia menggunakan fon yang ditentukan dan menggunakan fungsi DrawString aksara pada imej, dan akhirnya menukar imej kepada format PNG dan mengeluarkannya kepada output standard.

Untuk fon yang berbeza, kami juga boleh menggunakan pakej fon terbina dalam atau pakej basicfont dalam Golang atau pakej golang.org/x/image/font/inconsolata untuk melukis fon.

Ringkasan

Melalui pengenalan artikel ini, kita dapat melihat bahawa kaedah menukar fon di Golang adalah sangat mudah. Hanya muat turun fon, pasang fon, dan kemudian gunakan fungsi Println dalam Golang untuk mengeluarkan fon yang ditentukan. Pada masa yang sama, dengan menggunakan pakej fon terbina dalam atau pakej basicfont atau pakej golang.org/x/image/font/inconsolata untuk melukis fon, kami boleh meningkatkan fleksibiliti dan kebolehskalaan aplikasi Golang dengan banyak.

Atas ialah kandungan terperinci Bagaimana untuk menukar fon dengan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn