在jQuery中更改图像的尺寸

时间:2012-01-13 08:29:00

标签: javascript jquery html css scale

有没有办法在不影响jQuery图像质量的情况下改变(增大)图像的大小?

6 个答案:

答案 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 postthis one

答案 5 :(得分:0)

jQuery没有包含这样做的直接方法。您可以找到使用Flash或Applet的解决方案。

OR

您可以尝试将图像渲染到画布,然后将缩放例程(双线性,双三次等)应用到画布中的像素,并将输出渲染到另一个画布。完成后,您可以从画布中获取图像数据,并通过AJAX将其发送回服务器进行保存。有关缩放算法的更多信息,请参阅:check:http://en.wikipedia.org/wiki/Image_scaling