php实现将wav文件转换成图像文件并在页面中显示的方法

  本文实例讲述了php实现将wav文件转换成图像文件并在页面中显示的方法。分享给大家供大家参考。具体分析如下:

  需求:将wav文件转换成png文件并且显示出来。

  Wav_To_Png.php:

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

<?php
function wav_graph($file, $f=0, $w=0)
{
global $DATA_DIR;
if(!is_file($file))
return 0;
$fp = fopen($DATA_DIR.$file, 'r');
$raw = fread($fp, 36);
$str = '';
$header = unpack('A4Riff/VSize/A4Wav/A4Head/VHeadSize/vPCM/vChannels/VSampleRate/VByteRate/vBlockAlign/vSampleBits', $raw);
foreach($header as $k=>$v)
$str .= $k.': '. $v.' ';
fseek($fp, 36 + $header['HeadSize'] - 16);
$raw = fread($fp, 8);
$data = unpack('A4Data/VDataSize', $raw);
foreach($data as $k=>$v)
$str .= $k.': '. $v.' ';
$b = $header['SampleBits'];
$c = $header['Channels'];
$l = $b * $c / 8; // sample frame length in bytes
$s = $data['DataSize'] / $l; // total number of samples
$r = $header['SampleRate'];
if($f)
$h = pow(2, $b) / $f;
else
{ $h = 200; $f = pow(2, $b - 1) / $h; }
if($w == 0)
$w = round($r / 1000); // default to show 1k sample frames per minute
header("Content-type: image/png");
$im = imagecreate($s / $w, $h * $c * 2);
imagecolorallocate($im, 0xff, 0xff, 0xff); // white bg
$color = imagecolorallocate($im, 0, 0, 255); // black
imagestring($im, 5, 5, 5, $str, $color);
$x=0; $y = array(); $yn = array();
for($i = 0; $i < $c; $i++) $y[$i] = $h * $i + $h;
$n = $l * $w;
while(1)
{
if($s == 0)
break;
if($s < $n)
$n = $s;
$samples = fread($fp, 1000 * $n);
if($samples === FALSE)
break;
$packed = unpack("s*", $samples);
foreach($packed as $k=>$v)
{
$cnt = ($k-1) % ($w * $l) ;
if( $cnt > $c - 1)
continue;
$yn[$cnt] = $h * $cnt + $h - $v / $f;
imageline($im, $x, $y[$cnt], $x+1, $yn[$cnt], $color);
$y[$cnt] = $yn[$cnt];
$x++;
}
$s -= $n;
}
imagepng($im);
imagedestroy($im);
}
wav_graph('GetWave.wav');
?>

  效果图如下:


  希望本文所述对大家的php程序设计有所帮助。

时间: 2024-10-27 20:57:23

php实现将wav文件转换成图像文件并在页面中显示的方法的相关文章

将RTF格式的文件转成HTML并在网页中显示的代码

将RTF格式的文件转成HTML并在网页中显示的代码 它是这样工作的,将一个RTF文件上传,然后转成HTML显示出来,代码有点复杂,teaman还要好好研究,好象中文版有点问题.     <html>     <body>     <?     if(!($userfile)) {     ?>     <form enctype="multipart/form-data" action="<?print($PHP_SELF);?

将RTF格式的文件转成HTML并在网页中显示的代码_php基础

将RTF格式的文件转成HTML并在网页中显示的代码 它是这样工作的,将一个RTF文件上传,然后转成HTML显示出来,代码有点复杂,teaman还要好好研究,好象中文版有点问题.     <html>     <body>     <?     if(!($userfile)) {     ?>     <form enctype="multipart/form-data" action="<?print($PHP_SELF);?

将 HTML 文件转换成 XML

xml|转换 在 Java 专家 Michael Geisler 为 Builder 澳大利亚写的第一篇文章中,他向读者展示了如何使用 JTidy 将 HTML 文件转换成 XML. 有关 Java 的最重要的事情是有很多扩展标准库可以作为标准平台的一部分,而且在那些库中有对 XML 提供了非常多的支持.然而对于某些特定的需要,在标准库中可能没有直接的支持. 其实你有两个选择: 完全由自己来构建一些东西.这一般很痛苦,而且很费时间. 去"社区"看看是否已经有人遇到了同样的问题(这种情况

Word/Excel/PDF文件转换成HTML整理

项目开发过程中,需求涉及到了各种文档转换为HTML或者网页易显示格式,现在将实现方式整理如下: 一.使用Jacob转换Word,Excel为HTML "JACOB一个Java-COM中间件.通过这个组件你可以在Java应用程序中调用COM组件和Win32 libraries." 首先下载Jacob包,JDK1.5以上需要使用Jacob1.9版本(JDK1.6尚未测试),与先前的Jacob1.7差别不大 1.将压缩包解压后,Jacob.jar添加到Libraries中: 2.将Jacob

ASP中将视频文件转换成.flv格式

  现在出现很的网上在线视频其文件格式都是.FLV格式,那些视频网站大概也有一个视频转换软件,所我在也试着去做了一个demo拿出来和大家共享一下,由于自己的技术有限,做的不怎么样,愿有高人看完给 在下指点一二.呵.... 费话不多说了,下面来分解一下这个Demo. 首先,我们部署一下文件夹.在工程的目录下新建几个文件夹如下图: 中将视频文件转换成.flv格式UpFiles文件夹是要保存你上传的文件,PlayFiles文件夹是用于你转换后保存的文件(用于网上播放) ImgFile文件夹是保存截取视

php将图片文件转换成二进制输出的方法

 本文实例讲述了php将图片文件转换成二进制输出的方法.分享给大家供大家参考.具体实现方法如下: 1 2 3 4 header( "Content-type: image/jpeg"); $PSize = filesize('1.jpg'); $picturedata = fread(fopen('1.jpg', "r"), $PSize); echo $picturedata; 就这么简单4行代码,就将图片以二进制流的形式输出到客户端了,和打开一张图片没有任何区别

java 将excel文件转换成pdf文件

  最近做一个项目,需要把excel文件转换成pdf文件,经过我查资料,无非使用两种方式:1 POI+Itext 2 Jacob来调用excel另存功能. 第一种方式,原理是使用POI来读取excel的内容,将其写到pdf文件中.实现难度有点大,主要是因为excel sheet结构不固定,内容也不固定,可能存在图片等,导致读excel比较复杂,真正实现还是比较复杂的. 第二种方式,原来是使用jacob来调用excel文件的另存为pdf的功能.主要是熟悉jacob的API即可.不需要精巧的编程技巧

如何把xlsx文件转换成xls

方法一.在线转换法 如果要把xlsx转换成xls,一种最好的办法就是找一个有这一功能的网站,现在大家用得最多的也最为稳定的网站应该算是网易的在线转换了,点击这里进入,具体步骤如下: 步骤一.首先打开网站,进入转换页页,然后点击"浏览"按钮,选择你要转换加载的文件,然后点"打开",如图所示: 步骤二.这时在浏览框中就会出现你要转换的文件(含路径),然后点击"立即查看"按钮进行转换,这时你的内容就会显示出来了,如图所示: 方法二.利用高版本的Exce

教你怎么把pdf文件转换成word文档 轻松快速

话说,最近领导又有新要求了,要小编把一个产品的说明书PDF文件转换成Word 文档,然后可以保证编辑里面的内容和文字.小编在网上找了一些软件,结合自己的一些使用经验,把转换方法和软件介绍给大家. PDF转换成Word文档的基本转换思路: 如果是那种可以复制里面文字的PDF文档,一般都可以直接转换出来的,也可以做到修改,如果有密码限制,直接用软件去掉限制就可以了. 如果是遇到有转换出来是乱码的情况,一般建议尝试其它品牌的转换器,因为没有最好,只有最适合. 下面推荐相关的软件. 易捷pdf转换成wo