Tôi muốn hợp nhất 2 hình ảnh bằng cách sử dụng node.js. Hay đúng hơn, tôi muốn đặt một hình ảnh nhỏ hơn trên dây x, y trên một hình ảnh lớn hơn. Thậm chí chính xác hơn: Tôi có một hình ảnh của kính, và một hình ảnh của một khuôn mặt và tôi muốn đặt kính trên mặt. Tôi đã làm một số googling, và tìm thấy một số hình ảnh thao tác thư viện, nhưng không ai dường như có thể hợp nhất hình ảnh.Hợp nhất 2 hình ảnh với node.js?
10
A
Trả lời
7
Tôi đã sử dụng:
https://github.com/learnboost/node-canvas
để làm điều gì đó tương tự (xây dựng một hình ảnh tổng hợp từ các thành phần một cách nhanh chóng).
Nó hoạt động tuyệt vời.
Dưới đây là một số mã ví dụ:
var Canvas = require('canvas'),
fs = require('fs'),
Image = Canvas.Image;
var _components = [{prefix:'f', count:12},
{prefix:'h', count:12},
{prefix:'i', count:12},
{prefix:'m', count:12}];
var _total = 1;
for (var i=_components.length - 1; i>=0; i--){
_components[i].mult = _total;
_total *= _components[i].count;
}
module.exports.ensureImageExists = function(img, cb){
fs.stat(__dirname + '/../public/images/rb/' + img, function(err, stats){
if (err){
if (err.code == 'ENOENT')
generateImage(img, cb);
else
cb(err);
}
else{
cb();
}
});
}
function generateImage(name, cb){
var re = /rb([0-9]*)\.png/
var num = parseInt(re.exec(name)[1]) % _total;
var parts = [];
for (var i=0; i<_components.length; i++){
var n = Math.floor(num/_components[i].mult);
parts.push(_components[i].prefix + (n + 1));
num -= n * _components[i].mult;
}
var canvas = new Canvas(45, 45),
ctx = canvas.getContext('2d');
drawParts();
function drawParts(){
var part = parts.shift();
if (!part)
saveCanvas();
else {
var img = new Image;
img.onload = function(){
ctx.drawImage(img, 0, 0, 45, 45);
drawParts();
};
img.src = __dirname + '/components/' + part + '.png';
}
}
function saveCanvas(){
canvas.toBuffer(function(err, buf){
if (err)
cb(err);
else
fs.writeFile(__dirname + '/../public/images/rb/' + name, buf, function(){
cb();
});
});
}
}
Trong trường hợp này, các thành phần được lựa chọn dựa trên tên của hình ảnh, nhưng bạn rõ ràng có thể làm ngược lại. Ngoài ra, tôi tưởng tượng bạn chỉ có thể truyền hình ảnh ra nếu bạn muốn - Tôi viết nó vào một tập tin để nó có sẵn trong thời gian tới nó được yêu cầu.
tôi đặt một tuyến đường như trong này để xử lý thế hệ:
app.get('/images/rb/:img', requireLogin, function(req, res, next){
//first make sure image exists, then pass along so it is handled
//by the static router
rbgen.ensureImageExists(req.params.img, function(err){
next();
})
});
18
Bạn có thể cần điều này: https://github.com/zhangyuanwei/node-images
bộ giải mã hình ảnh Cross-nền tảng (png/jpeg/gif) và mã hóa (png/jpeg) cho Nodejs
images("big.jpg").draw(images("small.jpg"), 10, 10).save("output.jpg");
Các vấn đề liên quan
- 1. Hợp nhất hai hình ảnh với PHP
- 2. Kết hợp 2 hình ảnh overlayed
- 3. Thư viện hình ảnh Python: Cách kết hợp 4 hình ảnh vào lưới 2 x 2?
- 4. hợp nhất hình ảnh từ Raphael svg
- 5. Node.JS Hợp nhất và Swig
- 6. làm cách nào để hợp nhất 2 hình ảnh mà không cần sử dụng đặt alpha?
- 7. Làm cách nào tôi có thể hợp nhất 2 hình ảnh trên Windows Phone
- 8. Cách kết hợp/ghép 2 hình ảnh thành 1
- 9. Node.js trên Heroku với 2 cổng
- 10. cách hợp nhất Hình ảnh và áp đặt lên nhau
- 11. Đọc hình ảnh PNG trong Node.js
- 12. Kết hợp giữa hình ảnh phù hợp với hình ảnh trong python
- 13. Xương sống - Hợp nhất 2 Bộ sưu tập với nhau?
- 14. Hợp nhất 2 chi nhánh với nhau trong GIT
- 15. Phân đoạn hình ảnh - Tách và Hợp nhất (Quadtrees)
- 16. Hợp nhất SVG và .JPG thành một hình ảnh?
- 17. Tập hợp nhiều hình ảnh thành một hình ảnh lớn
- 18. Cách tốt nhất để hợp nhất một tập hợp hình chữ nhật trong một hình ảnh là gì?
- 19. Iphonesdk Kết hợp ba hình ảnh hai hình ảnh đơn
- 20. PHP: Hợp nhất 2 Mảng đa chiều
- 21. Tích hợp Ember.js với Node.js (Express + Tower.js)
- 22. nhiều trường hợp hình ảnh
- 23. Khâu 2 hình ảnh trong opencv
- 24. Kết nối 2 hình ảnh trong android
- 25. Hợp nhất 2 dòng vào một
- 26. Symfony 2 Hình ảnh tài sản
- 27. Hợp nhất hai hình ảnh PNG với thư viện GD PHP
- 28. Hợp nhất hai hình ảnh png với tính minh bạch và duy trì tính minh bạch
- 29. Kết hợp hai hình ảnh vào một hình ảnh mới
- 30. Công cụ hợp nhất hình ảnh tốt nhất cho Git là gì?
Cảm ơn bạn, trông giống như chính xác những gì tôi muốn. –
Không thành công với hình ảnh JPEG – Max