javascript - Php - Javascript - 我如何知道哪些页面是彩色的,哪些是黑白的?

标签 javascript php html css pdf

此脚本会将 PDF 拆分为单页并保存它们。如果我点击一张图片,它会更改 css 类并变为黑白。

现在我的问题是了解哪些页面和多少页面是彩色的

理解它的最佳方法是什么?

<?php
$pdf='aaa.pdf';
$image = new Imagick();
$image->pingImage($pdf);
$x = $image->getNumberImages();
echo "
<!DOCTYPE html>
<html>
<head>
</head>
<script>
function change_autorefreshdiv(id){
    var NAME = document.getElementById(id)
    var currentClass = NAME.className;
    if(currentClass == 'bn'){
        NAME.className = 'colore';
    } else {
        NAME.className = 'bn';
    }
} 
</script>

<style type='text/css'>
.bn{
      -webkit-filter: grayscale(100%);
      -moz-filter: grayscale(100%);
      -ms-filter: grayscale(100%);
      -o-filter: grayscale(100%);
      filter: grayscale(100%);
}
body {
      background: #000; 
    }
img {padding:5px;}
</style>

<body>";
for ($i=0; $i <= $x; ++$i){
	$im = new Imagick();
	$im->setResolution(20, 20);
	$im->readImage(''.$pdf.'['.$i.']');
	$im->setImageFormat('jpeg');
	$im->setImageCompression(imagick::COMPRESSION_JPEG); 
	$im->setImageCompressionQuality(100);
	$jpegpath = 'jpeg/'.$pdf.'['.$i.'].jpeg';
	$im->writeImage($jpegpath);
	echo "
    <img  width='170px' height='220px' 
    src='$jpegpath' id='$i' class='colore' 
    onclick='change_autorefreshdiv($i)'></img>";
}
echo "
  </body>";
img script in browser

最佳答案

PHP 在服务器 上运行,将结果(它的输出)发送到浏览器,然后停止运行 ,完成。
浏览器接收输出,然后呈现 HTML 并运行 javascript。此时 PHP 代码退出游戏

为了让 PHP(实际上是服务器)知道哪些是浏览器必须告诉它的,方法是将这些事实发送回服务器。
这可以通过表单提交或 ajax post 来完成; ajax 可以在结束时通知服务器一次,或者在选择(单击)和取消选择每个“页面”时连续通知服务器。

无论是表单提交还是 ajax,这都可能是一个 POST 到您的服务器,例如 http://yourserver.com/yourapplication/process_selections.php - 或者可能使用最初发送此文件的同一个 .php 文件。
需要理解的重要一点是,这与您在问题中发布的 PHP 代码完全不同 代码已完成运行。即使您回发到同一个 PHP 文件,那也是一个新调用,因此您之前设置的所有变量都不再可用。

您将不得不决定将信息发送回服务器的策略,一旦您决定了,您可能会有更多问题——稍后将这些作为具体问题提出;该主题过于宽泛,无法在这个问题的答案中涵盖。


提示:在浏览器中,您可能希望使用 javascript 选择所有带有 .bn 和/或 .colore 类的元素,并发送有关的信息那些返回到服务器。

关于javascript - Php - Javascript - 我如何知道哪些页面是彩色的,哪些是黑白的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36634790/

相关文章:

javascript - 如何将输入值放入卡片标题和卡片文本中

javascript - Node.js websockets 使用 UDP 或 TCP

PHP - 如何在循环内使用 sum 变量

javascript - 为什么这个 JS for-in 循环只记录属性的键,而不是整个属性?

javascript - 颜色框语法错误 : unrecognized expression

php - 从另一页上的特定表格单元格中选择文本?

php - 使用 Javascript 检测访问者浏览器 View 端口大小并保存到 PHP 变量

html - 在按钮中使用文本和 Font Awesome 图标,悬停效果单独工作

javascript - 我可以在 javascript 中创建下雨效果吗?

html - 是否可以在 SVG 中创建发光效果