`
hudeyong926
  • 浏览: 2032749 次
  • 来自: 武汉
社区版块
存档分类
最新评论

上传 缩略图 水印

阅读更多

缩略图,水印

 

生成缩列图有二种方式:

一,提前生成好,供调用

缩列图常规做法是,开始根据网站中的图片规格,要生成多少种缩列图,图片上传过程中就会生成缩列,供不同需求去调用。像这种方法有一点不好就是,如果增加图片规格以后,以前上传的图片没有该规格的,还要重新生成。见附件

二,调用的时候在生成缩列图。这也是我写这篇博客原因。

推荐一个timthumb,个人觉得在不考虑性能,效率的情况下,这个东西,绝对是好用的。

1,下载地址:http://timthumb.googlecode.com/svn/trunk/timthumb.php

2,使用方法

下载下来后,放到你的web环境中,在与timthumb.php平行的目录中建一个cache文件夹,给于755权限,windows的话,就不用了。测试代码如下:

<?php

$image = "http://localhost/test/pen_pic03.png";
//$ALLOWED_SITES 需设置
?>
<html>
<head>
<title>timthumb</title>
</head>
<body>
 <img src="http://localhost/test/timthumb.php?src=<?php echo $image; ?>&w=58&h=46&zc=1" alt="" />
</body>
</html>

参数说明:

w=58 表示图片宽为58

h=46 表示图片高为46

zc = 1/2/3

可以根据需要,随便设置。

timthumb最大的优点就是方便,目前还没有遇到过这样的工具,缺点同样明显,每次请求的时候,都会调用php-cgi或者是php-cli,缓存的数据放在cache目录下,调用数据要去查找目录,性能上会比较低。

 

<?php

/**
 * 不变型裁剪及图片按比例裁剪
 */
class resizeimage
{

    /**
     *$source_path传入的图片路径
     *$target_width生成缩略图的宽度
     *$target_height生成缩略图的高度
     *$save_path生成之后保存的路径
     *$output 浏览器输出
     */
    public function imagecropper($source_path, $target_width, $target_height, $save_path = '', $output = true)
    {
        $filename = basename($source_path); //获取传入的文件名
        $fname = explode('.', $filename);
        $newfile = $save_path . $fname[0] . "_$target_width" . "_$target_height." . $fname[1];
        if (file_exists($newfile)) //判断文件是否存在,存在就不生成
        {
            if ($output) {
                header('Content-Type: image/jpeg');
                readfile($newfile); //输出图像
            }
            die;
        }
        $source_info = getimagesize($source_path);
        $source_width = $source_info[0];
        $source_height = $source_info[1];
        $source_mime = $source_info['mime'];
        $source_ratio = $source_height / $source_width;
        $target_ratio = $target_height / $target_width;

        // 源图过高
        if ($source_ratio > $target_ratio) {
            $cropped_width = $source_width;
            $cropped_height = $source_width * $target_ratio;
            $source_x = 0;
            $source_y = ($source_height - $cropped_height) / 2;
        } // 源图过宽
        elseif ($source_ratio < $target_ratio) {
            $cropped_width = $source_height / $target_ratio;
            $cropped_height = $source_height;
            $source_x = ($source_width - $cropped_width) / 2;
            $source_y = 0;
        } // 源图适中
        else {
            $cropped_width = $source_width;
            $cropped_height = $source_height;
            $source_x = 0;
            $source_y = 0;
        }

        switch ($source_mime) {
            case 'image/gif':
                $source_image = imagecreatefromgif($source_path);
                break;

            case 'image/jpeg':
                $source_image = imagecreatefromjpeg($source_path);
                break;

            case 'image/png':
                $source_image = imagecreatefrompng($source_path);
                break;

            default:
                return false;
                break;
        }

        $target_image = imagecreatetruecolor($target_width, $target_height);
        $cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);

        // 裁剪
        imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);
        // 缩放
        imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $target_width, $target_height, $cropped_width, $cropped_height);

        if ($output) {
            header('Content-Type: image/jpeg');
            imagejpeg($target_image); //输出图像
        }
        imagejpeg($target_image, $newfile, 80);

        imagedestroy($source_image);
        imagedestroy($target_image);
        imagedestroy($cropped_image);
    }
}

?>

 

分享到:
评论

相关推荐

    SwfUpload在MVC4下多文件上传缩略图水印例子

    SwfUpload在MVC4下多文件上传缩略图水印例子

    缩略图水印组件源代码

    【标题】"缩略图水印组件源代码" 涉及的核心知识点是图像处理和网页开发中的水印技术和缩略图生成。这个组件主要用于在生成的缩略图上添加水印,以此来保护图像版权或者增加视觉效果。 1. **水印技术**:水印是一种...

    上传图片到服务器端,有缩略图,有水印

    在IT行业中,将图片上传到服务器并处理成缩略图以及添加水印是常见的需求,尤其是在网站开发和移动应用设计中。这个过程涉及到图像处理、网络传输和服务器端编程等多个技术领域。以下是对这个主题的详细说明: 1. *...

    缩略图 水印 缩略图 能够兼容各种浏览器 Jquery

    在网上找了好久都没有一个好的图片上传组建,于是我自己弄了一个, 功能非常 强大。...能够显示缩略图,一次上传多张,生成缩略图,按比例缩放。添加水印都有。而且能够兼容时下的各种浏览器。 Jquery

    kindeditor增强缩略图和水印

    1. **动态生成**:用户上传大图后,软件能自动根据预设尺寸生成缩略图,无需手动裁剪。 2. **自定义尺寸**:允许开发者设置多种不同的缩略图尺寸,适应不同布局需求。 3. **质量调整**:在保持图片可识别性的前提下...

    Asp.net上传图片同时生成缩略图和水印图

    在ASP.NET中,上传图片并生成缩略图和水印图是一项常见的需求,特别是在创建网站或者应用程序时,需要处理用户上传的图像。以下是一个关于如何在ASP.NET中实现这个功能的详细说明。 首先,上传图片是通过HTML的`...

    史上功能最全的.Net缩略图水印组件(超级适用)

    4.原图自定义删除; 5.图像亮度、对比度、RGB颜色值的调整; 6.可获取生成后的图片路径; 7.图片无损生成; 8.水印文字阴影禁启用; 9.水印文字中文字竖形排列,增加文字纵横排列参数开关; 10.调用将灵活; 11.优化水印...

    C# ASP.NET - 图片缩略图水印在线生成

    用户上传图片后,服务器端代码会处理图片,生成缩略图并添加水印,最后返回给客户端。 总结: 本教程详细介绍了如何使用C# ASP.NET来生成图片缩略图并添加水印。通过结合System.Drawing库,我们可以轻松地实现这一...

    PHP图片处理(上传、加水印、缩略图)

    PHP图片处理(上传、加水印、缩略图),对图片的处理

    多图上传(水印+两张缩略图预览)

    1、多图片选择、上传、水印、缩略功能 2、略缩图片,大中小三种 3、添加图片检测,限制图片大小 4、略缩图自动分类 5、自主设置是否添加文字水印 6、自主设置是否添加图片水印 7、自主设置水印位置 注释:...

    超强的图片上传,加水印,以及生成缩略图

    本主题将深入探讨“超强的图片上传,加水印,以及生成缩略图”这一技术领域,结合给出的标签“缩略图”,“图片上传”,“水印”,我们将详细讲解相关知识点。 首先,图片上传是网站或应用中让用户上传图片的功能。...

    asp无组件上传图片,aspjpeg生成缩略图和添加水印.zip

    在这个"asp无组件上传图片,aspjpeg生成缩略图和添加水印.zip"压缩包中,包含了解决这一问题的代码示例。主要涉及到以下几个核心知识点: 1. **图片上传**: ASP可以通过表单提交实现图片文件的上传。用户选择本地...

    上传图片生成缩略图、图片水印、文字水印.rar

    本压缩包"上传图片生成缩略图、图片水印、文字水印.rar"提供了一套完整的解决方案,适用于网站中需要处理图片的场景。以下是关于这些功能的详细解释: 1. 图片上传: 在`upfile.aspx`文件中,实现了用户上传图片的...

    上传图片生成水印缩略图

    "上传图片生成水印缩略图"是一个典型的需求,它涉及到文件上传、图像处理和优化等多个技术环节。接下来,我们将深入探讨这个话题。 1. **文件上传**:在Web应用中,`fileUpload`通常指的是用户通过网页上传文件的...

    PHP上传多图片生成缩略图加水印类

    在PHP开发中,图片处理是一项常见的任务,包括上传图片、生成缩略图以及添加水印。这个名为"PHP上传多图片生成缩略图加水印类"的项目,旨在提供一个方便、高效的解决方案,适用于网站内容管理、社交媒体分享等场景。...

    很强大的一个缩略图水印组件 for .net

    标题中的“很强大的一个缩略图水印组件 for .NET”指的是一个专为.NET平台设计的高级图片处理工具,主要用于创建缩略图并添加水印功能。这个组件可以帮助开发者在.NET环境中快速实现对图片的预览和管理,尤其是在...

    多文上传带缩略图和水印效果的上传控件

    "多文上传带缩略图和水印效果的上传控件"是一个常见需求,它旨在提供一个用户友好的界面,允许用户批量上传文件,并在上传过程中自动生成缩略图以及添加水印,以满足版权保护或品牌宣传的需求。下面将详细讨论这个...

    超强图片上传类(上传+水印+缩略图)(C#)

    在Asp.net开发中,处理图片上传、添加水印以及生成缩略图是常见的需求,尤其是在构建内容管理系统、电子商务网站或者社交媒体平台时。本压缩包提供的"超强图片上传类(上传+水印+缩略图)"是针对这些需求的一个解决...

    PHP图片上传、加水印及生成清晰缩略图等综合处理类

    在PHP开发中,图片处理是一项...无论是新手还是经验丰富的开发者,都能从中受益,快速实现图片上传、水印添加和缩略图生成等功能。通过学习和理解这个类的内部逻辑,开发者还能进一步提升自己在PHP图像处理方面的技能。

Global site tag (gtag.js) - Google Analytics