有没有办法在不影响jQuery图像质量的情况下改变(增大)图像的大小?
答案 0 :(得分:3)
我认为你不能,图像的质量,以及图像的质量......增加尺寸就像放大图像一样。
如果您在询问jQuery是否可以对图像进行重新采样,那么简单的答案是否定的,并且没有将AJAX请求发送到可以使用PHP等脚本语言进行重新采样的服务器,那么您无能为力不幸地保持它的质量。
我希望这有帮助! :)
答案 1 :(得分:3)
这只是调整大小,但你不能在不降低质量的情况下调整它们的大小。
var max_size = 200;
$("img").each(function(i) {
if ($(this).height() > $(this).width()) {
var h = max_size;
var w = Math.ceil($(this).width() / $(this).height() * max_size);
}
else {
var w = max_size;
var h = Math.ceil($(this).height() / $(this).width() * max_size);
}
$(this).css({ height: h, width: w });
});
更多例子:
答案 2 :(得分:2)
在普通光栅图像(bmp,jpg,png等)中使用客户端JavaScript无法调整质量,因为图像质量有限,一种方法是使用非常高质量的图像8000x8000和然后用css将它减小到你想要的大小。
img{
width:800px;
height:600px;
}
然后你可以使用jquery调整它的大小,在你开始超越原始分辨率之前你不会注意到质量下降,在这种情况下是8000x8000
$("img").css("width","1024px");
$("img").css("height","768px");
有许多问题涉及使用任何语言重新采样服务器
<强>更新强>
您还没有说过您正在使用的图像格式,您可以考虑使用SVG和HTML5,然后您就可以调整到适合任何规模的客户端,而不会降低质量。
答案 3 :(得分:0)
您可以通过更改宽度和高度属性来使用jquery缩放图像。虽然因为图像质量很好,就像你上传它一样,我并没有真正了解图像质量的一部分。
答案 4 :(得分:0)
jQuery不打算进行图像优化。它没有图形基元。你为什么要在javascript中这样做?你没有服务器端语言?
无论如何,你应该看看画布这样做。请查看this SO post或this one
答案 5 :(得分:0)
jQuery没有包含这样做的直接方法。您可以找到使用Flash或Applet的解决方案。
OR
您可以尝试将图像渲染到画布,然后将缩放例程(双线性,双三次等)应用到画布中的像素,并将输出渲染到另一个画布。完成后,您可以从画布中获取图像数据,并通过AJAX将其发送回服务器进行保存。有关缩放算法的更多信息,请参阅:check:http://en.wikipedia.org/wiki/Image_scaling)