社区
基础编程
帖子详情
php生成图片大小问题
goldily
2006-08-22 02:33:52
我上传一张图片,然后根据上传的图片生成其它尺寸的图片。但不管原上传图片有多大。生成的尺寸为83×100象素的图片大小总在17k左右。有没有好的方法能够让生成的图片尺寸不变,而大小很小呢?最好就是4、5k。请高手指点
...全文
718
7
打赏
收藏
php生成图片大小问题
我上传一张图片,然后根据上传的图片生成其它尺寸的图片。但不管原上传图片有多大。生成的尺寸为83×100象素的图片大小总在17k左右。有没有好的方法能够让生成的图片尺寸不变,而大小很小呢?最好就是4、5k。请高手指点
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
goldily
2006-08-22
打赏
举报
回复
多谢各位
yunfeifan
2006-08-22
打赏
举报
回复
<?
$FILENAME="image_name";
// 生成图片的宽度
$RESIZEWIDTH=83;
// 生成图片的高度
$RESIZEHEIGHT=100;
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;
$newwidth=83;
$newheight=100;
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>
这个生成的只有2k多
goldily
2006-08-22
打赏
举报
回复
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);
//echo "test1";
}
else
{
$newim = imagecreate($newwidth, $newheight);
imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
//echo "test2";
}
Imagepng ($newim,$name);
ImageDestroy ($newim);
}
else
{
Imagepng ($im,$name);
}
}
yunfeifan
2006-08-22
打赏
举报
回复
大小是和质量成正比的,你最好把你的代码贴上来,或者看看能不能控制质量的地方。
goldily
2006-08-22
打赏
举报
回复
谢谢。我试试看
kapil
2006-08-22
打赏
举报
回复
function make_small_copy($src)
{
$dir = substr($src,0,strrpos($src,'/') + 1);
$small_img = 'small_' . substr($src,strrpos($src,'/') + 1);
$data = getimagesize($src);
switch($data[2])
{
case 1:
$im = @imagecreatefromgif($src);
break;
case 2:
$im = @imagecreatefromjpeg($src);
break;
case 3:
$im = @imagecreatefrompng($src);
break;
}
$dstw = 150;
$dsth = 80;
$ni = imagecreatetruecolor($dstw,$dsth);
imagecopyresized($ni,$im,0,0,0,0,$dstw,$dsth,$data[0],$data[1]);
imagegif($ni,$dir . $small_img);
imagedestroy($ni);
}
/// 参数是原始图片的路径~
goldily
2006-08-22
打赏
举报
回复
望高手指点
bootstrap-fileinput-master上传插件(中文版)
对于图片文件,它能
生成
缩略图,提供预览;对于非图片文件,如文档或音频,它会显示文件图标和基本信息。这增强了用户对上传文件的理解,减少了误操作的可能性。 批量上传是另一个亮点,通过这个特性,用户可以一次...
PHP
自定义
生成
图片——静态
这篇博客先来讲解
PHP
+html简单
生成
静态图片 拿啥图装X或者来示范呢 嘿嘿 原始图 哈哈,CSDN博客,应该有代表性了吧 然后,想想修改啥 访问。。排名。。名字。。等等 emmm demo文件目录 解释下: ...
PHP
文字
生成
图片,并加入自动换,根据文字长度
生成
图片
下面是创建执行文件:generate.
php
。实现输入文字可以
生成
图片。
php
将文字
生成
图片显示,
php
生成
文字图片效果
php
生成
文字图片效果最近看到
php
的GD功能,试着做了一个基本
生成
文字图片效果的代码:显示文字图片页面:demo.
php
$str = $_REQUEST[‘str‘] ? $_REQUEST[‘str‘]:"暂无输入";//$str = "中华人民共和国";$im = ...
使用
php
,根据输入的文字自动
生成
图片,并把文字在图片上展示出来
样式图片(.jpg是背景图规格大小是800*500,.png是用于放输出文字的地方600*400)存放在image文件夹下
php
版本(5.6X左右就好,不建议到7.X因为之前用过7.3的版本出
问题
了),并且
php
开启gd库. 代码很简单,就一个文件...
基础编程
21,890
社区成员
140,347
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章