Example #1
0
	function gd_test(fmt) {
		img.save('test.pic', fmt);
		var img1 = gd.load('test.pic');

		fs.unlink('test.pic');

		img1 = gd.load(img.getData(fmt));

		assert.equal(img1.width, 440);
		assert.equal(img1.height, 240);
		assert.equal(img1.format, fmt);
	}
Example #2
0
exports.init = function(data, format) {
	var img;
	try {
		img = gd.load(data);
	} catch (e) {
		return;
	}
	var w = img.width,
		h = img.height;

	if (!format && img.format === gd.GIF)
		return img;

	if (w <= 1440 || h <= 1440)
		return img;

	if (w <= h && w > 1440) {
		h = h * 1440 / w;
		w = 1440;
	} else if (h < w && h > 1440) {
		w = w * 1440 / h;
		h = 1440;
	}
	return img.resample(w, h);
}
Example #3
0
File: qr.js Project: shenzhim/blog
module.exports = function(v, u) {
	if (v.firstHeader('If-Modified-Since')) {
		v.response.status = 304;
		return;
	}

	v.response.addHeader('Last-Modified', 'Mon, 26 Nov 2012 00:00:00 GMT');
	v.response.addHeader('Cache-Control', "max-age=" + 10 * 365 * 24 * 60 * 60);
	v.response.addHeader('Content-Type', 'image/jpeg');

	var type = v.query.type || "";
	if (type === "weixin") {
		var qrimg = gd.load(http.get("https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + u).readAll()).resample(360, 360);
		var baseimg = gd.load(storage.getValue("04558e407a3a1c0d893f7862eef7abe8"));

		baseimg.copy(qrimg, 140, 60, 0, 0, 360, 360);
		baseimg = baseimg.resample(400, 400);

		v.response.write(baseimg.getData(gd.JPEG, 50));
		return;
	}

	var _htOption = {
		width: 800,
		height: 800
	};
	var qrcode = new QRCode(_htOption);
	var imgbase = qrcode.makeCode(encodeURI("http://named.cn/" + u));

	//群组图片
	var hs = v.query.hs;
	if (!hs) {
		v.response.body.write(imgbase.getData(gd.JPEG));
	} else {
		// + 图片缩放 图片格式
		var groupimg = hs + ".t180x180.jpg";
		//将群组图片信息还原
		var url2img = require('utils/url2img');
		var newimg = url2img(v, groupimg);
		newimg = image.loadimg(newimg);
		imgbase = gd.load(imgbase.getData(gd.JPEG));

		if (newimg) {
			function drawPixel(newimg, imgbase) {
				var h = newimg.height,
					w = newimg.width;
				var oh = imgbase.height,
					ow = imgbase.width;
				var nw = ow / 3,
					nh = oh / 3;
				var white = gd.rgb(255, 255, 255);
				imgbase.copyResized(newimg, nw, nh, 0, 0, nw, nh, w, h);

				for (var x = 0; x < nw; x++) {
					for (var j = 0; j < 5; j++) {
						imgbase.setPixel(nw + x, nh + j, white);
						imgbase.setPixel(nw + x, 2 * nh - j, white);
					}
				}
				for (var y = 0; y < nh; y++) {
					for (var i = 0; i < 5; i++) {
						imgbase.setPixel(nw + i, nh + y, white);
						imgbase.setPixel(2 * nw - i, nh + y, white);
					}
				}
				return imgbase;
			}
			var res = drawPixel(newimg, imgbase);
			v.response.body.write(res.getData(gd.JPEG));
		}
	}
};
Example #4
0
exports.loadimg = function(f) {
	return gd.load(f);
}