Expand my Community achievements bar.

How to check if image has clipping path in java servlet


Level 2

I tried to get this info from image directly with twelvemonkeys libraries but it crashed my bundle. Can I get this info from metadata? Thanks.

6 Replies


Community Advisor

Hi @jamesc25111500 


Try this solution I hope this information will help you ! 

1. Add Dependency: Add the Apache Sanselan library to your project's dependencies. If you're using Maven, add this to your pom.xml:



    <version>0.98</version> <!-- Use the latest version -->



2. Implement Servlet: Create a servlet to check if an image has a clipping path in its metadata. Replace /path/to/your/image.jpg with the actual path to your image.



import org.apache.sanselan.ImageInfo;
import org.apache.sanselan.Sanselan;
import org.apache.sanselan.formats.tiff.constants.TiffTagConstants;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CheckClippingPathServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        try (InputStream imageInputStream = getServletContext().getResourceAsStream("/path/to/your/image.jpg")) {
            ImageInfo imageInfo = Sanselan.getImageInfo(imageInputStream, null);

            if (imageInfo != null && imageInfo.getComments() != null) {
                boolean hasClippingPath = false;
                for (String comment : imageInfo.getComments()) {
                    if (comment.contains("Clipping Path")) {
                        hasClippingPath = true;

                if (hasClippingPath) {
                    response.getWriter().println("Image has clipping path.");
                } else {
                    response.getWriter().println("Image does not have clipping path.");
            } else {
                response.getWriter().println("Image format not supported or metadata not available.");
        } catch (Exception e) {
            response.getWriter().println("An error occurred: " + e.getMessage());



This servlet reads the image metadata using Apache Sanselan's ImageInfo class and checks for comments that indicate the presence of a clipping path.

3. Configure Web Deployment: Make sure your servlet container (e.g., Apache Tomcat) is set up correctly to deploy and run your servlet.

4. Access the Servlet: Access the servlet in your web browser using the URL mapped to the servlet, like http://localhost:8080/your-web-app-context/checkclippingpath.


Thanks let me know if this works for you ! 


Level 2

Thank you very much for the detailed information. I tried but got error for maven library:

org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for org.apache.sanselan:sanselan:jar:0.98.


It may need to change maven settings or version. I will try to fix the issue. Thanks