Hỏi về resize hình trong nodejs (ExpressJS thuần)



  • Mình có làm chức năng upload hình ảnh lên web app nhưng hình up lên mình muốn resize ra nhiều kích cỡ để hiển thị trên view cho tốt. mình đã dùng image magic nhưng thấy sao nó resize ko dc. Anh em ai làm chức năng resize rồi thì cho mình ý tưởng hoặc module nào để resize vs. Thank mọi người



  • Bạn thử dùng free services này, dùng rest API nên ko cần phải cài thêm plugin gì.
    https://rsz.io/

    NHAN NGUYEN

    0


  • Bạn dùng thử thằng JIMP xem, được viết thuần bằng nodejs nên không cần phải cài thêm image magic làm gì



  • Một childprocess thuần bằng C++ kết hợp cùng Nodejs sẽ làm cái app của bạn nhanh hơn nhiều lần. Vì vậy bạn nên dùng chúng thay vì dùng một module xử lý ảnh thuần JS.

    Tôi đề nghị bạn dùng CanvasGm, tôi đã test thấy hai cái module này resize ảnh nhanh nhất.



  • @hidemanvn mình đã dùng gm nhưng resize ko dc như mong muốn. nó vẫn bể ra
    0_1468572681142_Selection_041.png



  • Bể ra là sao =.= , là vỡ hạt hay sai Size :D



  • ví dụ mình muốn resize về 200,200 để làm avatar . nhưng khi resize về 200,200 thì tấm hình bị bể size



  • Demo nhé:

    var fs = require('fs'),
    	gm = require('gm').subClass({imageMagick: true});;
    
    var IMAGE_DIR = __dirname +'/images/',
    	SAVE_DIR = __dirname +'/imagesResize/';
    
    var imageList = ['1.jpg', '2.jpg', '3.jpg'];
    
    var resize_keep_ratio = function(name) {
    	console.log(IMAGE_DIR+ name);
    	gm(IMAGE_DIR+ name)
    		.resize(200,200,'^')
    		.gravity('Center')
    		.extent(200, 200)
    		.write(SAVE_DIR+name, function(err) {
    			if (err) console.log(err);
    			console.log(SAVE_DIR+name);
    		});
    }
    
    imageList.forEach(function(img) {
    	resize_keep_ratio(img);
    });
    

    0_1468575341101_Resize.zip
    2_1468575373785_1.jpg 1_1468575373784_2.jpg 0_1468575373784_3.jpg



  • @hidemanvn ý mình muốn là resize lại nhưng mà vẫn giữ dc tỉ lệ. chứ ko phải con sư tử thì chỉ lấy dc phần đầu


  • Banned

    @nvs2394 code của bạn @hidemanvn nhìn có vẻ chuẩn mà? Hoặc ko thì nên dùng cái https://rsz.io/ của bạn @nguyenquynhan +1


Log in to reply