喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 帮助

RSS 订阅当前论坛  

喜悦证交所已经关闭

上一主题 下一主题
 13  1/2  1  2  > 
     
标题: 用PHP画了一个图,想用代码实现存下来,请高手指教!  
 
yangym532
注册会员
Rank: 2



UID 77189
精华 0
积分 59
帖子 43
金钱 59 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-7-28
状态 离线
用PHP画了一个图,想用代码实现存下来,请高手指教!

代码是
<?php
header("Content-type:image/png");
//从d:/out.jpg取出图片
$image=imagecreatefromjpeg("d:/out.jpg");
$blue=imagecolorallocate($image,0,0,255);
$imageW=imagesx($image);
$imageH=imagesy($image);
//打水印
imagettftext($image,20,0,2*$imageW/5,14*$imageH/15,$bule,"d:/ariali.ttf","www.dsjyw.com");
imagepng($image);
imagedestroy($image);
?>
想把打水印后的图片存下来该怎么做!
2006-8-23 11:42 AM#1
查看资料  发短消息  顶部
 
tsgx8848
中级会员
Rank: 3Rank: 3
中级会员


UID 30764
精华 0
积分 456
帖子 437
金钱 456 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2004-8-26
来自 广州
状态 离线
[推荐阅读] 目录不空则清空
imagejpeg
(PHP 3>= 3.0.16, PHP 4 )

imagejpeg -- 以 JPEG 格式将图像输出到浏览器或文件
说明
int imagejpeg ( resource image [, string filename [, int quality]])


imagejpeg() 从 image 图像以 filename 为文件名创建一个 JPEG 图像。image 参数是 imagecreate() 函数的返回值。

filename 参数为可选,如果省略,则原始图像流将被直接输出。要省略 filename 参数而提供 quality 参数,使用空字符串('')。通过 header() 发送 Content-type: image/jpeg 可以使 PHP 脚本直接输出 JPEG 图像。

注: JPEG 支持仅在 PHP 编译时加入 GD-1.8 或更高版本时可用。

quality 为可选项,范围从 0(最差质量,文件更小)到 100(最佳质量,文件最大)。默认为 IJG 默认的质量值(大约 75)。

如果想输出渐进式 JPEG,需要用 imageinterlace() 函数将隔行扫描比特置位。

参见 imagepng(),imagegif(),imagewbmp(),imageinterlace() 和 imagetypes()。
2006-8-23 12:22 PM#2
查看资料  访问主页  发短消息  QQ . .   顶部
 
yangym532
注册会员
Rank: 2



UID 77189
精华 0
积分 59
帖子 43
金钱 59 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-7-28
状态 离线
[推荐阅读] 新问题...php.exe
哦!懂了!

[ 本帖最后由 yangym532 于 2006-8-23 03:14 PM 编辑 ]
2006-8-23 02:59 PM#3
查看资料  发短消息  顶部
 
buzzard (家有咸妻)
高级会员
Rank: 4
老不死的会员


UID 19416
精华 0
积分 865
帖子 1136
金钱 865 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2003-4-7
状态 离线
[推荐阅读] 谁有PHP在线发信的例子
首先把你的文件fopen();
然后读取文件内容然后写道另一个文件中

举例

t1.php是个绘制图形的文件
t1.png是需要保存的文件
<?
        $path_get = "http://localhost:8082/test/report/t1.php";
        $path_save = "d:\\webdoc\\test\\report\\t1.png";
        $pic_read = fopen($path_get,'rb');
        if($pic_read)
        {
                echo $path_save;
                @$pic_write = fopen($path_save,'wb');
                if($pic_write)
                {
                        while(!feof($pic_read))
                        {
                                fwrite($pic_write,fread($pic_read,8192));
                        }
                       
                        fclose($pic_write);
                        fclose($pic_read);
                }
        }
?>

另附:请多看手册
再附:这属于基础编程
2006-8-23 03:39 PM#4
查看资料  发短消息  顶部
 
sunceenjoy
中级会员
Rank: 3Rank: 3
初级会员


UID 68584
精华 0
积分 262
帖子 249
金钱 262 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-2-13
状态 离线
[推荐阅读] firefox下如何改变onunload
楼上的兄弟,这么复杂干什么。
$str=file_get_contents("http://localhost/pic.php");
file_put_contents("/tmp/1.png",$str);
2006-8-23 04:23 PM#5
查看资料  Blog  发短消息  顶部
 
yangym532
注册会员
Rank: 2



UID 77189
精华 0
积分 59
帖子 43
金钱 59 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-7-28
状态 离线
[推荐阅读] 咱们村里学PHP的姐妹有多少啊?
都太复杂了!直接用imagepng($image,"d:/www/a.jpg");
就存在d:/www/a.jpg了!
2006-8-23 05:04 PM#6
查看资料  发短消息  顶部
 
luzhou (luzhou)
金牌会员
Rank: 6Rank: 6
资深会员



UID 22070
精华 0
积分 1048
帖子 1037
金钱 1048 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2003-7-28
状态 离线
[推荐阅读] 这段代码为什么抓不了QQ搜索的网页的内容,怎么才能取得它的内容呢?


QUOTE:
原帖由 yangym532 于 2006-8-23 05:04 PM 发表
都太复杂了!直接用imagepng($image,"d:/www/a.jpg");
就存在d:/www/a.jpg了!




自在的PHPer~
2006-8-23 08:23 PM#7
查看资料  发短消息  顶部
 
ripen
中级会员
Rank: 3Rank: 3
一般会员


UID 66304
精华 1
积分 282
帖子 300
金钱 272 喜悦币
威望 10
人脉 0
阅读权限 30
注册 2005-8-30
状态 离线
[推荐阅读] checkbox 全部选择的问题
2楼、3楼、4楼,都是故意把PHP搞得这么复杂!!其实就是很简单!
按照6楼的:imagepng($image,"d:/www/a.jpg");
Vary Goog!

还有,尽量对合成的图片进行类型判断:
也即:$image的类型进行判断,因为虽然表面上是"jpg"格式的,如果你用了imagejpeg的话,可能会不出来结果的,因为存在可能的就是那张图片实际上是"gif"或者是'"png"格式的!这个文件的类型是可以人为修改的!!

呵呵~~所以你要判断一下这个类型!
也即:getimagesize($image);
再对他们的['mime']进行判断!!
完整的意思是:

<?php
$src_size 
getimagesize($image);
              switch(
$src_size['mime']){
                case 
"image/jpeg":
               
imageJpeg($out$src);
                break;
                case 
"image/gif":
               
imageGif($out$src);
            break;              
              }
?>
[ 本帖最后由 ripen 于 2006-8-24 10:05 AM 编辑 ]




孔子曰 打架用砖乎 不宜乱扔乎 往头上扔乎 出血乎 不出血接着乎
2006-8-24 10:03 AM#8
查看资料  Blog  发短消息  QQ . .   顶部
 
pangran (pangran)
注册会员
Rank: 2
初级会员



UID 68674
精华 0
积分 55
帖子 79
金钱 55 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-2-17
来自 北京
状态 离线
[推荐阅读] 求助:文件上传问题!有人知道吗?
直接用imagepng($image,"d:/www/a.jpg");
就存在d:/www/a.jpg了!

这样能行么??
copy('d:/www/a.jpg',$image);//岂不是更简单
2006-8-24 10:07 AM#9
查看资料  访问主页  Blog  发短消息  QQ . .   顶部
 
ripen
中级会员
Rank: 3Rank: 3
一般会员


UID 66304
精华 1
积分 282
帖子 300
金钱 272 喜悦币
威望 10
人脉 0
阅读权限 30
注册 2005-8-30
状态 离线
[推荐阅读] 谁能给个apache_note函数的简单例子


QUOTE:
原帖由 pangran 于 2006-8-24 10:07 AM 发表
直接用imagepng($image,"d:/www/a.jpg");
就存在d:/www/a.jpg了!

这样能行么??
copy('d:/www/a.jpg',$image);//岂不是更简单
首先:你要对imagepng这个函数的机制进行了解:
首先:类似于这样的imagepng($image);
它并不是实际意义上的显现,而是读取到缓存中,再进行显示,也即在本地上并没有实际存在的一张图片,所以COPY就会出错!!
其次:imagepng($image,"d:/www/a.jpg");就会产生了一张实际在本地存在的图片了!
所以你的Copy函数也就实现了!没有imagepng($image,"d:/www/a.jpg");你的COPY就会出错!




孔子曰 打架用砖乎 不宜乱扔乎 往头上扔乎 出血乎 不出血接着乎
2006-8-24 10:13 AM#10
查看资料  Blog  发短消息  QQ . .   顶部
 13  1/2  1  2  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.034477 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP