2014-10-10 11 views
7

Tôi đang cố gắng tạo huy hiệu động đơn giản (png) để nhúng vào các trang tĩnh để biết trạng thái của ứng dụng của tôi.Viết văn bản trên PNG hiện có với Node.js

Tôi muốn sử dụng hình ảnh PNG hiện có và viết trên đó một số văn bản với Node.js.
Tôi đã tìm thấy nhiều thư viện nhưng tất cả đều sử dụng Imagemagick hoặc Cairo làm phụ thuộc gốc, tôi muốn tránh cài đặt bất kỳ thứ gì khác trên máy chủ.

Sau đó tôi đã tìm thấy lwip, nhưng tôi thực sự không thể hiểu cách viết văn bản trên một hình ảnh với nó. Làm thế nào tôi có thể làm được?

+2

Thay vào đó, bạn sẽ xem xét gói PNG trong SVG và thêm văn bản theo cách đó? Câu trả lời của tôi [ở đây] (http://stackoverflow.com/questions/24413133/batik-put-svg-on-top-of-image/24413676#24413676) cho thấy những điều cơ bản của phương pháp này. –

+0

svg không được các trình duyệt cũ hỗ trợ nên tôi không nghĩ là giải pháp trình duyệt chéo đủ ... –

+0

Tôi thấy quan điểm của bạn. Câu hỏi đặt ra là, bạn muốn hỗ trợ trình duyệt của mình trong bao lâu? PNG cũng không được hỗ trợ trong trình duyệt cũ ... Bạn cũng có thể hiển thị SVG trở lại PNG bằng cách sử dụng ví dụ: https://www.npmjs.org/package/svg2png –

Trả lời

9

Bạn có thể sử dụng Jimp. Nó có phương thức in:

var Jimp = require("jimp"); 

var fileName = 'test.png'; 
var imageCaption = 'Image caption'; 
var loadedImage; 

Jimp.read(fileName) 
    .then(function (image) { 
     loadedImage = image; 
     return Jimp.loadFont(Jimp.FONT_SANS_16_BLACK); 
    }) 
    .then(function (font) { 
     loadedImage.print(font, 10, 10, imageCaption) 
        .write(fileName); 
    }) 
    .catch(function (err) { 
     console.error(err); 
    }); 
+0

Hoặc, có vẻ như mọi người đều hỗ trợ SVG những ngày này: http://caniuse.com/#feat=svg –

+0

Với Jimp bạn không thể viết văn bản với bất kỳ kích thước và màu sắc nào. – dumitru

+0

@dumitru Bạn có thể. –

Các vấn đề liên quan