本文实例讲述了服务器端编程语言(专业超文本预处理器的缩写)实现将声音资源文件文件转换成图像文件并在页面中显示的方法。分享给大家供大家参考。具体分析如下:
需求:将声音资源文件文件转换成巴布亚新几内亚文件并且显示出来。
Wav_To_Png.php:
?服务器端编程语言(Professional Hypertext Preprocessor的缩写)函数wav_graph($file,$f=0,$ w=0){ global $ DATA _ DIR;if(!is_file($file))返回0;$fp=fopen($DATA_DIR).$file,' r ');$raw=fread($fp,36);$ str=$ header=unpack(' a4rif/VSize/A4Wav/A4Head/VHeadSize/vPCM/VC channels/v samplerate/VByteRate/vBlockAlign/v samplebits ',$ raw);foreach($header as $k=$v) $str .=$ k. ' :$ vfse ek(36法郎美元)标题[' HeAdize ']-16;$raw=fread($fp,8);$data=unpack('A4Data/VDataSize ',$ raw);foreach($数据为$k=$v) $str .=$ k. ' :$ v $ b=$ header[' SampleBits '];$ c=$ header[' Channels '];$ l=$ b * $ c/8;//以字节为单位的样本帧长度$ s=$ data[' DataSize ']/$ l;//样本总数$ 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);//默认显示每分钟1k个样本帧头(“内容类型:图像/png”);$im=imagecreate($s/$w,$ h * $ c * 2);imagecolorable($ im,0xff,0xff,0x ff);//白色BG $ color=image color allocate($ im,0,0,255);//黑色imagestring($im,5,5,5,$str,$ color);$ x=0;$ y=array();$ yn=array();对于($ 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($打包为$ k=$ v){ $ CNT=($ k-1)%($ w * $ l);if($cnt $c - 1)继续;$ yn[$ CNT]=$ h * $ CNT $ h-$ v/$ f;imageline($im,$x,$y[$cnt],$x 1,$yn[$cnt],$ color);$ y[$ CNT]=$ yn[$ CNT];$ x;} $ s-=$ n;} image png($ im);图像销毁($ im);} wav _ graph(' GetWave。wav’;效果图如下:
希望本文所述对大家的服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。