• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

用pngencoder php(AMFPHP) 保存图片

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

转自:http://hi.baidu.com/harry1299/blog/item/d7a64e323ec976f01b4cff3a.html

1.Flash端,通过adobe的类包,将BitmapData数据Encoder成ByteArray .然后,通过http或者amfphp发送到服务器端。
Code:
var bd:BitmapData = new   BitmapData(canvas.width,canvas.height);
bd.draw(canvas);
var jpgEncoder : PNGEncoder = new PNGEncoder();
var jpgBytes:ByteArray = PNGEncoder.encode(bd);

2.服务端的工作(针对amfphp而言):接受ByteArray ,注意,php是直接支持ByteArray类型的,然后通过fwrite或者file_put_contents,写数据,并且输出文件,ok搞定
Code:
public function createSavePngFile($ba,$savePoint)
{
       date_default_timezone_set('Asia/Shanghai');
  
       $now = date("YmdHis");
       $path = "resource/shareVideo/";
       $fileName = $path.$now.".png";
       $data = $ba->data;
  
       if(!file_exists($path.$now.".png"))
       {        
             $input = file_put_contents( $fileName, $data);//写入二进制数据
    
              if($input != 0 && $input != -1)
             {
                   return $this->serverPoxy->updateShareInfo($savePoint,$fileName);
            }
             else
            {
                   return false;
            }
       }
      return false;
}
注意:file_put_contents( $fileName, $data);中第二个参数是:$ba->data,而不是$ba,这是php的数据结构的规范。我就是搞错了这个,浪费了大侠我整个一个上午的时间,可恶^_^.
ok.如果还有什么问题,请联系我,E-Mail:[email protected]
附上关于AMFPHP网站的参考资料:
Send and Receive ByteArray to AMFPHP(http://www.sephiroth.it/tutorials/flashPHP/amfphp_bytearray/
Code:
<?php

class SaveJPEG
{
     var
$output_dir = "temp";
     var
$server_url = "http://www.sephiroth.it/amfphp2/services/tutorials/amfphp_bytearray/";

    
/**
      * Save image from the given bytearray
      * and return the path of the saved image
      */
    
function SaveAsJPEG($ba, $compressed = false)
     {
         if(!
file_exists($this->output_dir) || !is_writeable($this->output_dir))
            
trigger_error ("please create a 'temp' directory first with write access", E_USER_ERROR);

        
$data = $ba->data;
         if(
$compressed)
         {
             if(
function_exists(gzuncompress))
             {
                
$data = gzuncompress($data);
             } else {
                
trigger_error ("gzuncompress method does not exists, please send uncompressed data", E_USER_ERROR);
             }
         }
        
file_put_contents($this->output_dir . "/rawdata.jpeg", $data);
         return
$this->server_url . $this->output_dir . "/rawdata.jpeg";
     }

    
/**
      * Save file from a given bytearray
      * and return a ByteArray from the saved file
      */
    
function SaveAsByteArray($ba, $compresses = false)
     {
         if(!
file_exists($this->output_dir) || !is_writeable($this->output_dir))
            
trigger_error ("please create a 'temp' directory first with write access", E_USER_ERROR);

        
$data = $ba->data;
         if(
$compressed)
         {
             if(
function_exists(gzuncompress))
             {
                
$data = gzuncompress($data);
             } else {
                
trigger_error ("gzuncompress method does not exists, please send uncompressed data", E_USER_ERROR);
             }
         }
        
file_put_contents($this->output_dir . "/rawdata.rgb", $data);
         return new
ByteArray(file_get_contents($this->output_dir . "/rawdata.rgb"));
     }
}

?>


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
2.PHP内核探索:一次请求的开始与结束发布时间:2022-07-10
下一篇:
php获取文件mime类型Fileinfo等方法发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap