当前位置:首页 » 编程语言 » php字节流图片

php字节流图片

发布时间: 2022-07-23 01:48:36

A. 请教php图片转换成二进制文件流上传数据库问题

enctype="multipart/form-data"
http://ke..com/view/3247116.htm
你也可以看看这个理解一下

B. 现在想用php端做一个流媒体出来(m3u8),一点思路也没有,大家给点意见好吗

首先是要搞清m3u8文件头信息,然后可以用二进制字节数组来实现,如我用二进制做的图片程序:
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Diagnostics;
namespace BMP
{
class Program
{
static void Main(string[] args)
{
int w = 800; int h =600;
//BMP文件头信息:
long s3 = w * h * 3;
byte[] b = new byte[s3 + 54]; //image.bmp图片文件总字节数;
putByte(18, w, b);
putByte(22, h, b);
putByte(34, s3, b);
putByte(2, s3 + 54, b);
putByte(0, 0x42, b);
putByte(1, 0x4d, b);
putByte(10, 0x36, b);
putByte(14, 0x28, b);
putByte(26, 0x01, b);
putByte(28, 0x18, b);
//查看BMP头文件:
//for (int i = 0; i < 0x36;i++ )
//{
//Console.Write("{1:X2},",b[i]);
// if ((i+1) % 16 == 0) Console.WriteLine();
//}
//对各像素颜色赋值(上背景色):
for (int i = 0; i < s3 - 2; i += 3)
{
long p = i + 0x36;
b[p] = (byte)(i/(10*h)); //blue
//b[p + 1] = 150; //green
b[p + 2] = (byte)(i/(10*h)); //red
}
//画n个渐变色的圆:
for (int r = 0; r <300; r++)
{
for (double q = 0; q < 36.28; q += .01)
{
int x0 = 400; int y0 = 100;
int x = (int)(x0 + r * Math.Sin(q*.5));
int y = (int)(y0 - .2*r* Math.Cos(q*2));
long p =(long)(3 * (w * y + x) + 0x36);
if (p <= s3-2 && p >= 0) b[p] = (byte)(r *5); //blue
if (p <= s3-2 && p >= 0) b[p + 1] = (byte)(r*3); //green
if (p <= s3-2 && p >= 0) b[p + 2] = (byte)(255 - r); //red
}
}
//保存为二进制文件:
FileStream filesstream = new FileStream("image.bmp", FileMode.Create);
BinaryWriter objBinaryWriter = new BinaryWriter(filesstream);
foreach (byte index in b)
{
objBinaryWriter.Write(index);
}
objBinaryWriter.Close();
filesstream.Close();
//打开文件:
Process.Start("image.bmp");
//Console.ReadKey();
}
//转十六进制字节流:
static void putByte(long p, long v, byte[] b)
{
string hexString = Convert.ToString(v, 16);
if ((hexString.Length % 2) != 0)
hexString = "0" + hexString;
int gc = hexString.Length / 2;
for (int i = 0; i < gc; i++)
{
b[gc + p - i - 1] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
}
}
}
}

C. 关于php二进制流转换成图片的问题

二进制流和字符串流的解析是不一样的,你用解析字符串的方式来解析二进制的东西肯定不行啊,你可以设置,header('Content:image/png');设置文件的类型,后面直接echo 你读出来的文件.png改成你对应的图片格式,用浏览器来解析.

D. php创建图片显示乱码,是咋回事

乱码是正常的,因为图片是字节流,无法在网页上直接显示,你需要把图片嵌入到img标签内显示,例:<img src="http://localhost/image.php" />
另外,你的截图上面两行报错了,根据错误提示修改你的程序,否则即便你把图片地址放到img标签内也无法正常显示

E. php怎样获取上传图片的字节流呢

网页文件上传实际上在表单提交的时候,如果上传没有问题,文件已经上传到服务器的临时文件夹了。
在php中,有文件上传,那么php服务器端可以接收到请求参数 $_FILES,在 $_FILES数组中读取到上传文件的form表单名,然后在读取的数组中可以获取上传文件的源文件,使用 fopen()函数就可以获取文件的字节流了。
具体来点代码看看吧:(假定上传文件的表单名为 “formname”)
if($_FILES && isset($_FILES["formname"])){
//获取上传的文件的属性数组
$_fileinfo = $_FILES["formname"];
//获取上传文件的原文件名
$_filename = $_fileinfo["name"];
//获取上传文件的大小
$_filesize = $_fileinfo["size"];
//获取上传文件的临时文件名(长文件名)
$_filesource = $_fileinfo["tmp_name"];
//以读写方式打开文件,并将资源绑定到一个流上
$_filestream = fopen($_filesource,"ab");
//实现上传文件,其实质是把临时文件移动到制定的保存文件的位置
$_newfilename = "../mypath/filename.exp"; //自定义文件名,包含路径,可以是相对路径
move_uploaded_file($_filesource, $_newfilename);
}

F. 关于php 接收二进制流转换成图片

比如此类名字叫做imageUpload.class.php
那么首先是要引入该类文件用include("imageUpload.class.php");
第二步是实例化该类$inputimage = new imageUpload("input.jpg","./");
第三部是调用二进制转换成图片的方法了,$inputimage->stream2Image();

实例化该类需要传两个参数,第一个是需要保存的图片名字,第二个是图片保存路径地址。

G. php处理字节流

字节流是由字节组成的,
字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的

字符流和字节流都是什么
流就是stream. 一个连续的字节队列。

流是程序输入或输出的一个连续的字节序列,设备(例如鼠标,键盘,磁盘,屏幕和打印机)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现---不一定是物理磁盘文件,还可以是对应与某个输入/输出源的逻辑文件

流(streams)在I/O系统中是一种I/O机制和功能,或者称为streams子系统。它本身并不是一个物理设备的概念。
引入流的目的:
传统的字符设备驱动程序框架有许多缺点,这表现在:
。内核与字符设备驱动程序间接口的抽象层次太高
。内核没有为字符设备提供可靠的缓冲区分配和管理功能
。许多系统对字符设备的界面是把数据看成是FIFO(先进先出)的字节流,因此没有识别消息边界,区分普通设备和控制信息,以及判定不同消息优先级的能力,也没有字节流流量控制
。在网络数据传输设备中这些问题更突出。网络中数据传输是基于消息或数据分组的。
流的概念:
用通讯中的术语来说,流是全双工的处理过程,它是内核中驱动程序和用户进程之间的数据传输通道。
从流的构造上来说,它由一个流头,一个流驱动程序尾,以及其间的零个或若干个可选模块构成 。流头是一个用户级接口,它允许用户应用程序通过系统调用接口来访问流。驱动程序尾与底层设备通信。在流的中间的模块是处理数据的。

字节流与字符流主要的区别是他们的的处理对象

字节流是由字节组成的,字符流是由字符组成的. Java里字符由两个字节组成.

字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化。在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public String(byte bytes[], String charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统默认的lang

流式传输主要指将整个音频和视频及三维媒体等多媒体文件经过特定的压缩方式解析成一个个压缩包,由视频服务器向用户计算机顺序或实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备对压缩的A/V、3D等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。

H. php如何将图片转成字节流

在php中,有文件上传,那么php服务器端可以接收到请求参数 $_FILES,在 $_FILES数组中读取到上传文件的form表单名,然后在读取的数组中可以获取上传文件的源文件,使用 fopen()函数就可以获取文件的字节流了。
具体来点代码看看吧:(假定上传文件的表单名为 “formname”)
if($_FILES && isset($_FILES["formname"])){
//获取上传的文件的属性数组
$_fileinfo = $_FILES["formname"];
//获取上传文件的原文件名
$_filename = $_fileinfo["name"];
//获取上传文件的大小
$_filesize = $_fileinfo["size"];
//获取上传文件的临时文件名(长文件名)
$_filesource = $_fileinfo["tmp_name"];
//以读写方式打开文件,并将资源绑定到一个流上
$_filestream = fopen($_filesource,"ab");
//实现上传文件,其实质是把临时文件移动到制定的保存文件的位置
$_newfilename = "../mypath/filename.exp"; //自定义文件名,包含路径,可以是相对路径
move_uploaded_file($_filesource, $_newfilename);
}

I. 你好,PHP 使用webserver 服务调用接口怎么传参数 是字节流形式的图片呢

你好,PHP 使用webserver 服务调用接口怎么传参数 是字节流形式的图片呢你好,PHP 使用webserver 服务调用接口怎么传参数 是字节流形式的图片呢

热点内容
安卓照片加胡子是什么软件 发布:2025-01-31 11:20:03 浏览:907
创建数据库并设置编码 发布:2025-01-31 11:11:52 浏览:781
搭建数据中心需要的服务器配置 发布:2025-01-31 11:11:44 浏览:590
c语言小数点后四舍五入 发布:2025-01-31 11:10:10 浏览:496
httpslinux 发布:2025-01-31 11:10:09 浏览:828
java4 发布:2025-01-31 11:08:42 浏览:355
什么是密码屏蔽 发布:2025-01-31 11:05:13 浏览:216
一个算法的效率可分为 发布:2025-01-31 11:05:12 浏览:639
win7用户名密码是什么 发布:2025-01-31 10:57:38 浏览:394
网址端口访问 发布:2025-01-31 10:49:30 浏览:512