`

生成缩略图(如验证码)

阅读更多
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;

public class ThumbnailGenerator {
   
    public void transform(String originalFile, String thumbnailFile, int thumbWidth, int thumbHeight, int quality) throws Exception
    {
        Image image = javax.imageio.ImageIO.read(new File(originalFile));
       
        double thumbRatio = (double)thumbWidth / (double)thumbHeight;
        int imageWidth    = image.getWidth(null);
        int imageHeight   = image.getHeight(null);
        double imageRatio = (double)imageWidth / (double)imageHeight;
        if (thumbRatio < imageRatio)
        {
            thumbHeight = (int)(thumbWidth / imageRatio);
        }
        else
        {
              thumbWidth = (int)(thumbHeight * imageRatio);
        }
       
        if(imageWidth < thumbWidth && imageHeight < thumbHeight)
        {
            thumbWidth = imageWidth;
            thumbHeight = imageHeight;
        }
        else if(imageWidth < thumbWidth)
            thumbWidth = imageWidth;
        else if(imageHeight < thumbHeight)
            thumbHeight = imageHeight;

        BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics2D = thumbImage.createGraphics();
        graphics2D.setBackground(Color.WHITE);
        graphics2D.setPaint(Color.WHITE);
        graphics2D.fillRect(0, 0, thumbWidth, thumbHeight);
        graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);
       
        javax.imageio.ImageIO.write(thumbImage, "JPG", new File(thumbnailFile));
    }
}

 

分享到:
评论

相关推荐

    php生成验证码,缩略图及水印图的类分享_.docx

    - 使用 `imagecopyresampled` 函数从原始图像复制像素到新画布上,生成缩略图。 - **保存或输出图片**: - 使用 `imagepng` 或其他相应函数保存或输出生成的缩略图。 - **清理资源**: - 使用 `imagedestroy` ...

    php生成验证码,缩略图及水印图的类分享

    在本篇文章中,主要讲解了PHP语言中生成验证码、缩略图以及添加水印图的功能实现。这些功能在WEB开发中极为常见,是提升网站安全性、优化图片显示的重要手段。下面将详细讲解每个功能的实现方法和相关知识点。 首先...

    thinkphp3.2.3后台登录功能(包括验证码和缩略图的实现)

    在处理用户上传的图片时,有时我们需要生成缩略图以适应不同的展示需求。ThinkPHP提供了`Image`类,可以方便地进行图片处理,包括缩放、裁剪、水印等操作。例如,使用`resize`方法可以按比例缩放图片,`crop`方法...

    《PHP编程最快明白》第七讲:php图片验证码与缩略图_.docx

    通过继承或扩展此类,可以方便地实现各种图像处理任务,包括生成缩略图。 ### 总结 本章节主要介绍了PHP中生成图片验证码和缩略图的基本原理和技术实现。通过对示例代码的分析,读者可以了解到如何利用PHP内置的GD...

    images_php.zip_PHP 图片缩略图

    - 生成缩略图的调用可能形如`$thumbnail = $image-&gt;resize('original.jpg', 'thumbnail.jpg', 100, 100, true);`,参数分别是原始图片路径、目标路径、目标宽度、目标高度和是否保持比例。 总的来说,"images_...

    PHP5中GD库生成图形验证码(有汉字)

    GD库提供了丰富的API用于图像处理,可以帮助我们创建缩略图、添加水印、生成报表等等。验证码是互联网中常见的安全措施之一,用于区分人类用户和自动化程序。 生成验证码的基本思路包括: 1. 创建图像,并在上面...

    ThinkPHP-3-命令空间+验证码+缩略图

    同时,验证码和缩略图功能可能涉及到图像处理和验证技术,比如生成随机字符的验证码图片以及对上传图片的缩放和裁剪操作。这些内容虽然在描述中没有详细展开,但在实际开发中也是非常重要的实践技能。

    《PHP编程最快明白》第七讲:php图片验证码与缩略图

    接下来,我们讨论了如何生成缩略图。在PHP中,可以使用类`SimpleImage`来处理图像。这个类包含了加载、保存和输出图像的方法,支持JPEG、GIF和PNG格式。实例23展示了如何使用这个类创建缩略图。首先,`load`方法根据...

    PHP100视频教程 33:PHP5中图片验证码的制作(上)

    在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。 2、部分GD库函数的介绍 imagecreatetruecolor 新建一个真彩色图像 imagecolorallocate 为一幅图像分配颜色(调色板) ...

    实现基于PHP制作验证码

    基于PHP制作验证码 一、 开发环境 ... 2、文本编辑器:Sublime 3。 二、主要技术 本案例主要基于PHP中的GD库来实现验证码的制作。... 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表 。

    JSP调用JavaBean在网页上动态生成柱状图

    "jsp中生成图片缩略图的代码.txt"则可能是关于如何使用JSP和Java处理图像,生成图片缩略图的代码示例。这在需要显示大图但又受限于网页空间时非常实用,通过调整图片尺寸,可以快速生成适合网页显示的缩略图。 总结...

    在线生成图片 源码 含教程 详细注释 PSD分层文件

    在网站上GD库通常用来生成缩略图,或者用来给图片添加水印,或者用来生成验证码等。幸运的是,SAE默认是对GD库支持的。 本地开发php默认是不支持GD库的,需要自己开启,开启的方式是:在本地PHP安装目录下找到...

    .NET Core利用skiasharp文字头像生成方法教程(基于docker发布)

    主要给大家介绍了关于.NET Core利用skiasharp文字头像生成(基于docker发布)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    基于PHP制作验证码1

    在网站上 GD 库通常用来生成缩略图、或者用来对图片加水印、或者对网站数据生成报表。 三、效果图展示 如图 1 所示,验证码图片的宽度为 100 像素,高度为 25 像素,背景颜色为白色,验证码字符串由 4 个字符组成...

    PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)

    在本文中,我们将深入探讨如何使用PHP和GD库来创建一个功能完备的验证码系统,包括如何生成验证码图像以及实现点击验证码或看不清时自动刷新的功能。GD库是PHP中的一个核心扩展,它允许我们处理图像,包括创建、修改...

    php压缩图片,添加水印,制作验证码等

    这个过程涉及读取原始图像,计算缩放比例,然后使用`imagecopyresampled()`创建新的缩略图。这个例子对于学习和理解如何在实际项目中应用上述技术非常有帮助。 6. **优化和性能**: 在处理大量图像时,性能优化是...

    调用GD库

    GD库是PHP中广泛使用的图形处理库,它允许开发者创建、修改和操作图像,包括生成缩略图和验证码。在本文中,我们将深入探讨如何在Windows和Linux环境下调用GD库,以及如何利用其功能来生成这两种常见的图像操作。 ...

    爱雪儿文件上传系统 v3.0

    基于[iXuEr CMS]架构设计制作,方便的调用接口,方便的反馈参数调用接口,主动选择是否显示文件上传进度,为每个上传的文件提供属性接口,可以设置某个文件是否生成缩略图或者添加水印,文件上传添加了验证码机制,...

Global site tag (gtag.js) - Google Analytics