ساخت تصاویر Thumbnail در فریم ورک اسپرینگ

این نوشته مربوط به برنامه‌نویسی در فریم‌ورک اسپرینگ است؛ اگر با این فریم‌ورک آشنایی ندارید، خواندن این نوشته‌ی من در مورد این چهارچوب برنامه‌نویسی می‌تواند برای شما مفید باشد. مزیت ساخت تصاویر بندانگشتی (thumbnail) این است که حجم تصاویر صفحه وب کاهش یافته و سرعت بارگزاری (load) تصاویر در صفحات وب افزایش می‌یابد.

 برای ساخت Thumbnail ابتدا باید dependency زیر را به پروژه خود اضافه کنیم:

<dependency>  
    <groupId>org.imgscalr</groupId>  
    <artifactId>imgscalr-lib</artifactId>  
    <version>4.2</version>  
    <type>jar</type>  
    <scope>compile</scope>  
</dependency>

حال هر جا که خواستیم از تصویر خود Thumbnail بسازیم، باید آن را به نوع BufferedImage تبدیل کنیم. می‌توانید از تابع زیر برای تولید Thumbnail استفاده کنید: (در اینجا تصویر ما از نوع MultipartFile است)

import org.imgscalr.Scalr;   
/*  
...  
*/  
private ByteArrayOutputStream createThumbnail(MultipartFile orginalFile, Integer width) throws IOException{  
  
    ByteArrayOutputStream thumbOutput = new ByteArrayOutputStream();  
    BufferedImage thumbImg = null;  
    BufferedImage img = ImageIO.read(orginalFile.getInputStream());  
  
    thumbImg = Scalr.resize(img, Scalr.Method.AUTOMATIC, Scalr.Mode.AUTOMATIC, width, Scalr.OP_ANTIALIAS);  
    ImageIO.write(thumbImg, orginalFile.getContentType().split("/")\[1\] , thumbOutput);  
  
    return thumbOutput;  
}

در متد resize، ثابت  Scalr.Method.AUTOMATIC به معنای تنظیم نسبت طول تصویر به عرض آن به صورت اتوماتیک است.
همچنین در متد  ImageIO.write، آرگومان دوم در واقع نوع تصویر مانند jpg، gif، png و… را مشخص می‌کند.


برچسب‌ها:،،،،،
مرتضی اسدی
مرتضی اسدی
سلام! من مرتضی اسدی هستم، یک توسعه‌دهنده‌ی نرم‌افزار و در این وبلاگ دست‌نوشته‌هایم را می‌نویسم.