我正在使用HTML 5 Canvas& amp;创建一个图像编辑工具。 Java脚本。我通过缩放图像以适应画布,应用一些过滤器并将图像保存到磁盘来将大图像加载到画布。
问题是当我将画布保存到图像时,它将存储具有画布大小的图像。我想要的是使用应用过滤器将图像存储到其实际尺寸。 Flickr使用的方法相同。
例如
如果图像是1000px X 1000px并显示在300px X 300px画布中,我将图像加载到画布上为300px X 300px。保存时我仍然想用1000px X 1000px dimesnion保存图像。怎么做?
我正在使用php,HTML5和amp;的JavaScript。
我希望在将图像发送到服务器之前在客户端执行所有操作
任何帮助?
寻找合适的解决方案
答案 0 :(得分:3)
找到它。
只需使用css&更改画布大小即可标签属性
CSS宽度&高度调整画布的显示区域 标签宽度&高度是实际图像宽度&高度
例如:
#canvas { width:500px; height:350px}
<canvas id="canvas" width="1024" height="760"></canvas>
上面将显示500px x 350px块的画布。 但是当画布保存到图像时,它将保存为图像大小1024x760
答案 1 :(得分:1)
使用此链接。它有完整的教程。
http://www.sitepoint.com/image-resizing-php/
此图片的尺寸会相应改变。
<强>更新强>
对于客户端
http://ericjuden.com/2009/07/jquery-image-resize/
$(document).ready(function() {
$('.story-small img').each(function() {
var maxWidth = 100; // Max width for the image
var maxHeight = 100; // Max height for the image
var ratio = 0; // Used for aspect ratio
var width = $(this).width(); // Current image width
var height = $(this).height(); // Current image height
// Check if the current width is larger than the max
if(width > maxWidth){
ratio = maxWidth / width; // get ratio for scaling image
$(this).css("width", maxWidth); // Set new width
$(this).css("height", height * ratio); // Scale height based on ratio
height = height * ratio; // Reset height to match scaled image
width = width * ratio; // Reset width to match scaled image
}
// Check if current height is larger than max
if(height > maxHeight){
ratio = maxHeight / height; // get ratio for scaling image
$(this).css("height", maxHeight); // Set new height
$(this).css("width", width * ratio); // Scale width based on ratio
width = width * ratio; // Reset width to match scaled image
}
});
});