小编MaK*_*aKR的帖子

PHP Imagick JPEG优化

我正在使用PHP Imagick运行时调整图像大小.该网站有一个图片上传功能,我们不能信任用户使用Web友好JPEGs,因为在mass-import有许多35MB图像,甚至一些大的13MB.每个图像都变成了一个缩略图(200x200),当从列表视图进入详细视图时,只显示一个图像,所以性能不是很大,尽管我们不能完全抛弃它.这是我们到目前为止所做的事情:

$iMagick = new Imagick($file);
$iMagick->setImageResolution(72,72);
$iMagick->resampleImage(72,72,imagick::FILTER_UNDEFINED,1);
$geometry = $iMagick->getImageGeometry();
if ($geometry['height'] > 1920 || $geometry['width'] > 1080) {
    $iMagick->scaleImage(1920, 0);
    if($geometry['height'] > $resizeHeight) {
        $iMagick->scaleImage(0, 1080);
    }
}
$iMagick->setImageCompression(Imagick::COMPRESSION_JPEG);
$iMagick->setImageCompressionQuality($compression);
$iMagick->writeImage($file);
$Imagick->clear();
Run Code Online (Sandbox Code Playgroud)

旁注:我刚刚在条件逻辑中意识到高度/宽度的缺陷,所以暂时忽略它.我会很快编辑这个问题,以反映正确的条件比较.对于那些没有抓住它的人来说,它将所有图像缩放到1920宽度,即使它应该是缩放高度,然后在缩放之后将其缩小到最大尺寸1080 height.

我用来测试的3MB 2398×2400图像以图像开始.将其缩放以1079x1080产生1.5MB图像,然后按JPEG质量添加压缩70将其降低到750KB.使用kraken.io,图像能够被压缩到不到60KB.我还能对这个脚本做些什么,因为它需要在运行时优化图像吗?

我已经阅读了使用已安装的libjpeg的建议,但我找不到任何关于它启用的功能的文档,或者是否有办法强制Imagick专门使用它.我甚至不确定Imagick是不是已经使用过它了.

编辑:解决方案

function itm_optimizeImage($file, $compression = 70, $maxDimensions = ['width' => null, …
Run Code Online (Sandbox Code Playgroud)

php jpeg libjpeg imagick image-compression

10
推荐指数
1
解决办法
9648
查看次数

JQuery onunload()没有异步的AJAX:false

在特定条件下的某个页面上,我需要在页面卸载时在SQL中运行更新语句.它需要在用户到达下一页之前完成.我正在使用JQuery 1.8.3.这是我开始的地方:

$(window).unload(function() {
    $.ajax({
            type: "POST",
            cache: false,
            url: "myScript.php",
            data: ({ /* my data */ }),
            success: function(result) { /* do nothing */ },
            error: function(data) { location.reload(); }
    });
});
Run Code Online (Sandbox Code Playgroud)

使用此方法,update语句未运行.通过阅读它我尝试了"async:false",这似乎一开始并没有解决我的问题,直到我检查了我的表并看到值正在更新(仅在添加"async:false"之后).根据进一步阅读,"async:false"已在JQuery 1.8中弃用,但仍在执行更新语句.问题是更新语句在下一页的select语句已经完成之前没有完成执行,因此除非用户刷新页面,否则数据已过期.这是由于1.8中对"async:false"的部分支持,对db的写入执行速度缓慢与从db读取的快速执行,以及其他一些延迟问题,要么 ???即使unload事件使用户保持在页面上,下一个HTTP请求是否可能通过?

jquery onunload

1
推荐指数
1
解决办法
2915
查看次数

Function to move an image when image is clicked?

I have an html file called index.html, and it has this div in there

  <body>
     <div id="rock"> <img src="rock.PNG" alt="rock" onclick="test()"> </div>
     <div id="paper"> <img src="paper.PNG" alt="rock"></div>
     <div id="scissors"> <img src="scissors.PNG" alt="rock">  </div>
Run Code Online (Sandbox Code Playgroud)

test is my function, and its within the same file and its written here

 <script type="text/javascript">
    function test(){
      var elem = document.getElementById("rock");
      var pos = 0;
      var id = setInterval(frame, 10);
      function frame() {
        if (pos == 350) {
          clearInterval(id);
        } else {
          pos++;
          elem.style.top = pos …
Run Code Online (Sandbox Code Playgroud)

html javascript

1
推荐指数
1
解决办法
40
查看次数

标签 统计

html ×1

image-compression ×1

imagick ×1

javascript ×1

jpeg ×1

jquery ×1

libjpeg ×1

onunload ×1

php ×1