2014-12-23 14 views
7

Tôi đang cố gắng sử dụng các gói tiếp theogolang: in văn bản trong hình ảnh

"image/draw" 
"image" 
"image/jpeg" 

nhưng tôi muốn có khả năng để in bất kỳ văn bản hoặc số (mà cũng có thể là văn bản) trong hình ảnh của tôi.

Nhưng có vẻ như không có gì từ hộp trong Go để thực hiện việc này.

Có ai có thể giúp tôi giải pháp "GO way" cho việc này không?

+0

Tôi đoán rằng bạn muốn có một trên cùng một giải pháp, do đó bạn đọc một hình ảnh jpeg, thêm văn bản vào nó và sau đó lưu nó như là một hình ảnh jpeg? Điều duy nhất tôi có thể nghĩ ra, là sử dụng Azul3d, nó chứa các tùy chọn để đọc hình ảnh jpeg và hiển thị nó, sử dụng freetype để hiển thị văn bản. Nhưng tôi không chắc chắn nếu có một tùy chọn để lưu hình ảnh với văn bản đi kèm. – Dippo

+0

azul3d - là một công cụ trò chơi, tôi không chắc chắn rằng đó là điều tốt nhất để thêm văn bản vào hình ảnh. – qwertmax

+0

Xem bản sao có thể có này: [Cách thêm nhãn văn bản đơn giản vào hình ảnh trong Go?] (Http://stackoverflow.com/questions/38299930/how-to-add-a-simple-text-label-to -an-image-in-go) – icza

Trả lời

8

Tôi chỉ tìm thấy hình ảnh này, freetype-go

có lib tốt nhất và duy nhất cho nhu cầu của tôi không?

+1

Có gì sai với freetype? Nó là rất tốt. – Volker

1

việc kiểm tra này

package main 

import (
    "github.com/fogleman/gg" 
    "log" 
) 

func main() { 
    const S = 1024 
    im, err := gg.LoadImage("src.jpg") 
    if err != nil { 
     log.Fatal(err) 
    } 

    dc := gg.NewContext(S, S) 
    dc.SetRGB(1, 1, 1) 
    dc.Clear() 
    dc.SetRGB(0, 0, 0) 
    if err := dc.LoadFontFace("/Library/Fonts/Arial.ttf", 96); err != nil { 
     panic(err) 
    } 
    dc.DrawStringAnchored("Hello, world!", S/2, S/2, 0.5, 0.5) 

    dc.DrawRoundedRectangle(0, 0, 512, 512, 0) 
    dc.DrawImage(im, 0, 0) 
    dc.DrawStringAnchored("Hello, world!", S/2, S/2, 0.5, 0.5) 
    dc.Clip() 
    dc.SavePNG("out.png") 
} 
Các vấn đề liên quan