将DCT输出的数组转换为PHP中的图像

时间:2019-01-05 06:49:34

标签: php dct

使用以下代码,我可以在PHP中获取图像的DCT。然后,我需要将其转换回压缩图像。我该如何实现?

<?php

$results = array();
$image1 = "baboon.jpg";
$ima = ImageCreateFromJPEG($image1);
$N1 = imagesx($ima);
$N2 = imagesy($ima);

$rows = array();
$row = array();
for ($j = 0; $j < $N2; $j++) {
    for ($i = 0; $i < $N1; $i++)
        $row[$i] = imagecolorat($ima, $i, $j);
    $rows[$j] = dct1D($row);
}

for ($i = 0; $i < $N1; $i++) {
    for ($j = 0; $j < $N2; $j++)
        $col[$j] = $rows[$j][$i];
    $results[$i] = dct1D($col);
}

print_r($results);

function dct1D($in) {
    $results = array();
    $N = count($in);
    for ($k = 0; $k < $N; $k++) {
        $sum = 0;
        for ($n = 0; $n < $N; $n++) {
             $sum += $in[$n] * cos($k * pi() * ($n + 0.5) / ($N));
        }
        $sum *= sqrt(2 / $N);
        if ($k == 0) {
            $sum *= 1 / sqrt(2);
        }
        $results[$k] = $sum;
    }
    return $results;
}

?>

我还需要知道如何向该图像添加一些其他细节,例如另一条消息。(图像隐写术)。请帮忙。谢谢

0 个答案:

没有答案