Skip to content

Java Image Resize

How it works

  1. The image gets uploaded to your server.
  2. When the image is stored to the disk on server side, it is also resized.

Jump to Complete Example

Image Upload

In the Server Upload article we explain the steps to upload image on your server. After you insert an image in the rich text editor, you can resize it, but this only changes the width and height displayed in the browser, and not the physical size of the image. That should be done on server side.

Resize Image

The WYSIWYG editor's Java SDK comes with the possibility to resize the image when it is being stored on the disk. It is using the Java Thumbnails.Builder.size or Java Thumbnails.Builder.forceSize methods, therefore all the options available for it can be used.

// Use default validation with image resize;
ImageOptions options = new ImageOptions();
options.setResize(width, height, keepAspectRatio);

Complete Example

<script>
  new FroalaEditor('.selector', {
    // Set the image upload URL.
    imageUploadURL: '/upload_image_resize',

    imageUploadParams: {
      id: 'my_editor'
    }
  })
</script>
package com.froala.examples.servlets;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.froala.editor.Image;
import com.froala.editor.image.ImageOptions;
import com.google.gson.Gson;

/**
 * Servlet implementation class UploadImageResize
 */
@WebServlet("/upload_image_resize")
@MultipartConfig
public class UploadImageResize extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public UploadImageResize() {
        super();
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String fileRoute = "/public/";

        // Use default validation with image resize;
        ImageOptions options = new ImageOptions();
        options.setResize(300, 300, false);

        Map<Object, Object> responseData;
        try {
            responseData = Image.upload(request, fileRoute, options);
        } catch (Exception e) {
            e.printStackTrace();
            responseData = new HashMap<Object, Object>();
            responseData.put("error", e.toString());
        }
        String jsonResponseData = new Gson().toJson(responseData);
        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(jsonResponseData);
    }

}

Do you think we can improve this article? Let us know.