2012-01-16 186 views
0

我有一个程序可以将图像文件转换为二进制文件,并将二进制数据转换为图像文件。我已经完成了第一个,我可以将图像文件转换为二进制文件。但第二个尚未完成。如何将二进制图像数据转换为图像文件并将其保存在文件夹中php

如何转换和二进制数据保存到图像文件

我在PHP。请检查该帮我

+0

“二元”是什么意思?你能更好地描述你的问题吗? – Vyktor 2012-01-16 10:39:32

+0

我已使用file_get_contents并将其转换为字符串 – 2012-01-16 11:08:51

回答

3

尝试imagecreatefromstring方法,它是记录here

+0

“It Works!” 。还有一个问题我可以用相同的方式转换视频文件,我可以如何实现? – 2012-01-16 11:07:02

+0

@Rinto转换视频文件意味着什么?字符串到视频? – Dau 2012-01-16 11:27:33

+0

“谢谢”。与我用于图像的方式相同(字符串到图像)。我从其他非PHP应用程序获取视频作为字符串数据。我需要将它作为视频文件保存在我的服务器中,然后在视频播放器中进行流式传输。有任何想法吗 ? – 2012-01-16 11:37:00

0

您会将您的二进制流(我假设为r/g/b值)转换回十进制符号,并使用imagesetpixel()将图像写入到您要创建的图像中。

将图像数据转换为二进制流的几个原因之一是在隐写期间隐藏二进制位较低位的附加数据 - 在每个像素的颜色不会在人眼可辨别的水平上改变颜色。

检查http://www.php.net/manual/en/function.imagesetpixel.php

1

您可以在下面的代码中使用与saving an imageresizing saved png image without losing its transparent/white effect选项:

$data = 'binary data of image'; 
$data = base64_decode($data); 
$im = imagecreatefromstring($data); 
// assign new width/height for resize purpose 
$newwidth = $newheight = 50; 
// Create a new image from the image stream in the string 
$thumb = imagecreatetruecolor($newwidth, $newheight); 

if ($im !== false) { 

    // Select the HTTP-Header for the selected filetype 
    #header('Content-Type: image/png'); // uncomment this code to display image in browser 

    // alter or save the image 
    $fileName = $_SERVER['DOCUMENT_ROOT'].'server location to store image/'.date('ymdhis').'.png'; // path to png image 
    imagealphablending($im, false); // setting alpha blending on 
    imagesavealpha($im, true); // save alphablending setting (important) 

    // Generate image and print it 
    $resp = imagepng($im, $fileName); 

    // resizing png file 
    imagealphablending($thumb, false); // setting alpha blending on 
    imagesavealpha($thumb, true); // save alphablending setting (important) 

    $source = imagecreatefrompng($fileName); // open image 
    imagealphablending($source, true); // setting alpha blending on 

    list($width, $height, $type, $attr) = getimagesize($fileName); 
    #echo '<br>' . $width . '-' . $height . '-' . $type . '-' . $attr . '<br>'; 

    imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 
    $newFilename = $_SERVER['DOCUMENT_ROOT'].'server location to store image/resize_'.date('ymdhis').'.png'; 
    $resp = imagepng($thumb,$newFilename); 

    // frees image from memory 
    imagedestroy($im); 
    imagedestroy($thumb); 

} 
else { 
    echo 'An error occurred.'; 
} 

同样的方法,我们可以为JPEG,JPG和图像的GIF格式做。

希望它对这里的人有帮助!

相关问题