你好,我遇到php读取sql server中image类型的图片数据的问题,现在想把数据库中的图片信息保存成文件

请大侠不吝赐教,非常感激。QQ310830356... 请大侠不吝赐教,非常感激。QQ 310830356 展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
兆梓倩08
2016-12-23
知道答主
回答量:25
采纳率:0%
帮助的人:12.1万
展开全部
  
// 定义上传目录
$upload_dir = $_SERVER['DOCUMENT_ROOT'].'/upload/';
// 创建目录
if(!is_dir($upload_dir))mkdir($upload_dir);

// 二进制数据 $picture
$image_type = image_type_to_mime_type($picture));
// 取得图片类型
$temp = explode('/', $image_type);

// 文件名
$uuid = rand(0,100).strtotime('+1 day');
$name = $uuid.$temp[1];
$path = $upload_dir.$name;

// 打开文件准备写入
$file = fopen($path, 'w');
// 写入
fwrite($file, $picture);
//关闭
fclose($file);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
程序员小伙
2018-03-17
知道答主
回答量:1
采纳率:0%
帮助的人:878
展开全部
sqlserver image类型存入的实际上是16进制数据 因此需要读取三原色 拼成图片

$face_data = "0xD174B8007795CC........";//数据库存储数据
$size = 0;
$im = imagecreatetruecolor(48, 48);
for ($y = 0; $y < 48; $y++) {
for ($x = 0; $x < 48; $x++) {
$hex = substr($face_data, ($size++)*4, 3);

$red = substr($hex,2,1);
$green = substr($hex,1,1);
$blue = substr($hex,0,1);

$color = imagecolorallocate($im, ord($red), ord($green), ord($blue));
imagesetpixel($im, $x, $y, $color);
}
}

header('Content-type: image/jpeg');
$big_img = imagecreatetruecolor(96, 96);
imagecopyresampled($big_img, $im,0, 0, 0, 0, 96,96, 48, 48);
imagejpeg($big_img);
imagedestroy($big_img);
imagedestroy($im);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-10-13
展开全部
你把图片路径存起来不就好了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式