Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有人能解释一下这个加扰功能是如何工作的吗?_Php - Fatal编程技术网

Php 有人能解释一下这个加扰功能是如何工作的吗?

Php 有人能解释一下这个加扰功能是如何工作的吗?,php,Php,我正在使用一个函数(一个基于web的软件,用于使用jpeg图像获得“glitchy”效果)。该函数可以在第23行的文件中找到。目前,它还没有使文件变得足够流畅。我让你看看我想要的图像是什么样子。这是通过在文本编辑器中打开jpeg并剪切某些行并粘贴到其他位置来实现的 我希望这个函数做类似的事情,但目前它没有。有什么想法吗?也许有更好的方法吗 function scramble($content, $size) { $sStart = 10; $sEnd = $size-1;

我正在使用一个函数(一个基于web的软件,用于使用jpeg图像获得“glitchy”效果)。该函数可以在第23行的文件中找到。目前,它还没有使文件变得足够流畅。我让你看看我想要的图像是什么样子。这是通过在文本编辑器中打开jpeg并剪切某些行并粘贴到其他位置来实现的

我希望这个函数做类似的事情,但目前它没有。有什么想法吗?也许有更好的方法吗

function scramble($content, $size) {
    $sStart = 10;
    $sEnd = $size-1;
    $nReplacements = rand(1, 30);

    for($i = 0; $i < $nReplacements; $i++) {
        $PosA = rand($sStart, $sEnd);
        $PosB = rand($sStart, $sEnd);

        $tmp = $content[$PosA];
        $content[$PosA] = $content[$PosB];
        $content[$PosB] = $tmp;
    }

    return($content);
}
函数加扰($content,$size){
$sStart=10;
$sEnd=$size-1;
$nReplacements=兰特(1,30);
对于($i=0;$i<$nReplacements;$i++){
$PosA=rand($sStart,$sEnd);
$PosB=rand($sStart,$sEnd);
$tmp=$content[$PosA];
$content[$PosA]=$content[$PosB];
$content[$PosB]=$tmp;
}
返回($content);
}

该函数在数组元素之间进行随机交换。交换次数是从1到30之间随机生成的数字。

它随机交换从图像加载的数据数组中的信息。这会导致有效图像在某些扇区中显示无效图像信息。此外,图像文件有时在文件的前端/末尾包含附加信息;这看起来并没有考虑到这一点,也可能会破坏这些信息


要增加掉期金额,您需要增加替换数量。您特别感兴趣的代码位是
rand(1,30);如果仍然没有达到预期效果,我建议先增加最小置乱量,然后再增加上限。

请注意,这是一种非常简单的更改文件内容的方法,可能会导致文件完全无法使用(真正损坏)。将文件作为GD图像打开并对像素数据进行更改可能更安全。jpeg文件格式有多种类型的块,其中大多数块大小可变。您旋转了错误的位,损坏了标题,而不是图像数据。