求救!PHP生成缩略图,但不能用GD

liumyong 2004-08-21 12:36:46
如题,PHP生成缩略图,有几种方法,还有GD,在PHP.ini 如何设置。

大侠们,如有代码或有用的观点,本人定当重谢(谢分)
...全文
472 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
野马 2004-08-29
  • 打赏
  • 举报
回复
我曾经用GD写过一个缩略图的类,,不过不是用GD库,我就不知道如何产生缩略图了
countstars 2004-08-29
  • 打赏
  • 举报
回复
还有其他扩展支持图片编辑的,比如freeimage,呵呵
liumyong 2004-08-28
  • 打赏
  • 举报
回复
有谁贴一imagemagick生成GIF的缩略图的代码,让我学习一下
cnfreely 2004-08-26
  • 打赏
  • 举报
回复
不用gd库,二进制读写文件或数据库
raid79 2004-08-26
  • 打赏
  • 举报
回复
up
ticks 2004-08-26
  • 打赏
  • 举报
回复
janlon(Roydo-Myths)

怎么修改上传图片的目录
yzs1013 2004-08-25
  • 打赏
  • 举报
回复
$imgpath="c:/img.pic";//源图路径
$newimgpath="c/img_small.pic";//生成的缩略图路径

$srcSize= getImageSize($imgpath);
$srcRatio=$srcSize[0]/$srcSize[1];
if(100*$srcRatio>120){
$w=120;$h=0; //要求按原图比例缩扩后,宽不能大于120像素,
}else{
$w=0;$h=87; //要求按原图比例缩扩后高不能大于87像素
}
if($srcSize[2]==2)
@makeimage($imgpath,$newimgpath,$w,$h);

FUNCTION makeimage($srcFile,$dstFile,$dstW,$dstH) {
global $wangming,$wangming2,$news,$tugao,$tukuan,$zdimg;
$quality=80; //设置清淅度80%
$srcFile=str_replace($wangming,$news,$srcFile);
$srcFile=str_replace($wangming2,$news,$srcFile);
if(!file_exists($srcFile) || $srcFile==""){
return;
}
if(file_exists($srcFile2)){
$srcFile=$srcFile2;
}
$srcSize= getImageSize($srcFile);
$srcW=$srcSize[0];
$srcH=$srcSize[1];
$srcRatio=$srcSize[0]/$srcSize[1];
if($dstW==0){
$dstW=ceil($dstH*$srcRatio);
}
if($dstH==0){
$dstH=ceil($dstW/$srcRatio);
}
$tugao=$dstH;
$tukuan=$dstW;
$ni=imageCreateTrueColor($dstW,$dstH);
switch ($srcSize[2]) {
case 1: $im = imageCreateFromGif($srcFile);break;
case 2: $im = imageCreateFromJpeg($srcFile);break;
case 3: $im = imageCreateFromPng($srcFile);break;
default: return false; break;
}
ImageCopyResampled($ni,$im,0,0,0,0,$dstW,$dstH,$srcW,$srcH);
switch ($srcSize[2]) {
case 1:
case 2: imageJpeg($ni,$dstFile,$quality); break;
case 3: imagePng($ni,$dstFile); break;
}
}
luza 2004-08-25
  • 打赏
  • 举报
回复
zairwolfi(君子兰)

不是,是一个国外的相册程序,要用到imagemagick,可惜我们的系统管理员太差,只会WIN2000,不会LINUX,所以只能调用 exec(), 如果是LINUX就好了,可以直接用用convert()。
我开始也用GD2,结果发现不管怎么搞都不好看,还是imagemagick爽!
不知各位大侠还有什么好软件吗???
zairwolfi 2004-08-25
  • 打赏
  • 举报
回复
luza,httop://www.xgrb.cn/photo/index.php你是用的imagemagick生成的?效果还不错。做的图片背景也挺漂亮。
junyi2003 2004-08-25
  • 打赏
  • 举报
回复
imagemagick不错,正在使用中.
iStringTheory 2004-08-25
  • 打赏
  • 举报
回复
可以尝试一下SVG格式图片,是用xml描述的,不过对客户端有些要求,要有svg格式浏览器,不过好像现在IE6应该有的
zairwolfi 2004-08-25
  • 打赏
  • 举报
回复
那样会不会有点太浪费精力和资源了?
tod204 2004-08-25
  • 打赏
  • 举报
回复
一般来说都是用gd库的.
但是你如果算法不错的话,可以自己编写类似gd库的编码规则..
hackfan 2004-08-24
  • 打赏
  • 举报
回复
方法肯定有的
你得到图片的二进制
根据编码规范
缩小以后,二进制输出
肯定没问题=.=

等于一个小型的GD -.-
多菜鸟 2004-08-24
  • 打赏
  • 举报
回复
缩略图一般都是用GD吧,还有其它方法吗??
关注中。。
34n 2004-08-24
  • 打赏
  • 举报
回复
ImageMagick,freeImage也行
liumyong 2004-08-24
  • 打赏
  • 举报
回复
几天没来了,谢谢大家热情参与!
GD设置问题已解决,可基本问题还没解决。
怎样用其它方法实现文件缩略?

最近琢磨PHPBB的代码,发现GIF文件不能显示缩略,请高人指点。
luza 2004-08-23
  • 打赏
  • 举报
回复
是你自己的服务器吗?如果是,不要用GD了,效果太差,用ImageMagick吧,保你满意!!

有时间的话我想写个它的使用方法,效果可以看看 httop://www.xgrb.cn/photo/index.php
hahawen 2004-08-23
  • 打赏
  • 举报
回复
up
janlon 2004-08-23
  • 打赏
  • 举报
回复
设置我就不说了,前面有众多高手指点,不过,要注意的时:gd不能与gd2同时使用,就是说只能打开其中一个,要么是gd,要么是gd2!!!

这里给你一段代码,看是否对你在所帮助:

代码如下:
---------------------------------------------------------------------
<?

$FILENAME=time()."_s";

// 生成图片的宽度
$RESIZEWIDTH=200;

// 生成图片的高度
$RESIZEHEIGHT=200;


function ResizeImage($im,$maxwidth,$maxheight,$name){
$width = imagesx($im);
$height = imagesy($im);
if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){
if($maxwidth && $width > $maxwidth){
$widthratio = $maxwidth/$width;
$RESIZEWIDTH=true;
}
if($maxheight && $height > $maxheight){
$heightratio = $maxheight/$height;
$RESIZEHEIGHT=true;
}
if($RESIZEWIDTH && $RESIZEHEIGHT){
if($widthratio < $heightratio){
$ratio = $widthratio;
}else{
$ratio = $heightratio;
}
}elseif($RESIZEWIDTH){
$ratio = $widthratio;
}elseif($RESIZEHEIGHT){
$ratio = $heightratio;
}
$newwidth = $width * $ratio;
$newheight = $height * $ratio;
if(function_exists("imagecopyresampled")){
$newim = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}else{
$newim = imagecreate($newwidth, $newheight);
imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}
ImageJpeg ($newim,$name . ".jpg");
ImageDestroy ($newim);
}else{
ImageJpeg ($im,$name . ".jpg");
}
}



if($_FILES['image']['size']){
if($_FILES['image']['type'] == "image/pjpeg"){
$im = imagecreatefromjpeg($_FILES['image']['tmp_name']);
}elseif($_FILES['image']['type'] == "image/x-png"){
$im = imagecreatefrompng($_FILES['image']['tmp_name']);
}elseif($_FILES['image']['type'] == "image/gif"){
$im = imagecreatefromgif($_FILES['image']['tmp_name']);
}
if($im){
if(file_exists("$FILENAME.jpg")){
unlink("$FILENAME.jpg");
}
ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME);
ImageDestroy ($im);
}
}

?>

<img src="<? echo($FILENAME.".jpg?reload=".rand(0,999999)); ?>"><br><br>

<form enctype="multipart/form-data" method="post">
<br>
<input type="file" name="image" size="50" value="浏览"><p>
<input type="submit" value="上传图片">
</form>

</body>
</html>
---------------------------------------------------------------------
加载更多回复(8)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧