Search in sources :

Example 1 with Transform

use of com.google.appengine.api.images.Transform in project pratilipi by Pratilipi.

the class ImageUtil method resize.

public static BlobEntry resize(BlobEntry blobEntry, int width, int height) throws UnexpectedServerException {
    if (blobEntry.getMimeType() != null && blobEntry.getMimeType().equalsIgnoreCase("image/svg+xml")) {
        blobEntry.setData(ImageSvgUtil.resizeSvg(blobEntry.getData(), width));
        return blobEntry;
    }
    Image image = ImagesServiceFactory.makeImage(blobEntry.getData());
    Transform resize = ImagesServiceFactory.makeResize(width < 4000 ? width : 4000, height < 4000 && height != 0 ? height : 4000, height == 0 ? false : true);
    if (blobEntry.getMimeType() != null && blobEntry.getMimeType().equalsIgnoreCase("image/png")) {
        image = imagesService.applyTransform(resize, image, OutputEncoding.PNG);
    } else {
        image = imagesService.applyTransform(resize, image, OutputEncoding.JPEG);
        blobEntry.setMimeType("image/jpeg");
    }
    blobEntry.setData(image.getImageData());
    return blobEntry;
}
Also used : Image(com.google.appengine.api.images.Image) Transform(com.google.appengine.api.images.Transform)

Example 2 with Transform

use of com.google.appengine.api.images.Transform in project java-docs-samples by GoogleCloudPlatform.

the class ImagesServlet method doGet.

// [END gcs]
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    // [START original_image]
    // Read the image.jpg resource into a ByteBuffer.
    FileInputStream fileInputStream = new FileInputStream(new File("WEB-INF/image.jpg"));
    FileChannel fileChannel = fileInputStream.getChannel();
    ByteBuffer byteBuffer = ByteBuffer.allocate((int) fileChannel.size());
    fileChannel.read(byteBuffer);
    byte[] imageBytes = byteBuffer.array();
    // Write the original image to Cloud Storage
    gcsService.createOrReplace(new GcsFilename(bucket, "image.jpeg"), new GcsFileOptions.Builder().mimeType("image/jpeg").build(), ByteBuffer.wrap(imageBytes));
    // [END original_image]
    // [START resize]
    // Get an instance of the imagesService we can use to transform images.
    ImagesService imagesService = ImagesServiceFactory.getImagesService();
    // Make an image directly from a byte array, and transform it.
    Image image = ImagesServiceFactory.makeImage(imageBytes);
    Transform resize = ImagesServiceFactory.makeResize(100, 50);
    Image resizedImage = imagesService.applyTransform(resize, image);
    // Write the transformed image back to a Cloud Storage object.
    gcsService.createOrReplace(new GcsFilename(bucket, "resizedImage.jpeg"), new GcsFileOptions.Builder().mimeType("image/jpeg").build(), ByteBuffer.wrap(resizedImage.getImageData()));
    // [END resize]
    // [START rotate]
    // Make an image from a Cloud Storage object, and transform it.
    BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
    BlobKey blobKey = blobstoreService.createGsBlobKey("/gs/" + bucket + "/image.jpeg");
    Image blobImage = ImagesServiceFactory.makeImageFromBlob(blobKey);
    Transform rotate = ImagesServiceFactory.makeRotate(90);
    Image rotatedImage = imagesService.applyTransform(rotate, blobImage);
    // Write the transformed image back to a Cloud Storage object.
    gcsService.createOrReplace(new GcsFilename(bucket, "rotatedImage.jpeg"), new GcsFileOptions.Builder().mimeType("image/jpeg").build(), ByteBuffer.wrap(rotatedImage.getImageData()));
    // [END rotate]
    // Output some simple HTML to display the images we wrote to Cloud Storage
    // in the browser.
    PrintWriter out = resp.getWriter();
    out.println("<html><body>\n");
    out.println("<img src='//storage.cloud.google.com/" + bucket + "/image.jpeg' alt='AppEngine logo' />");
    out.println("<img src='//storage.cloud.google.com/" + bucket + "/resizedImage.jpeg' alt='AppEngine logo resized' />");
    out.println("<img src='//storage.cloud.google.com/" + bucket + "/rotatedImage.jpeg' alt='AppEngine logo rotated' />");
    out.println("</body></html>\n");
}
Also used : BlobstoreService(com.google.appengine.api.blobstore.BlobstoreService) FileChannel(java.nio.channels.FileChannel) ImagesService(com.google.appengine.api.images.ImagesService) Image(com.google.appengine.api.images.Image) ByteBuffer(java.nio.ByteBuffer) FileInputStream(java.io.FileInputStream) BlobKey(com.google.appengine.api.blobstore.BlobKey) GcsFileOptions(com.google.appengine.tools.cloudstorage.GcsFileOptions) Transform(com.google.appengine.api.images.Transform) File(java.io.File) GcsFilename(com.google.appengine.tools.cloudstorage.GcsFilename) PrintWriter(java.io.PrintWriter)

Example 3 with Transform

use of com.google.appengine.api.images.Transform in project pratilipi by Pratilipi.

the class ImageUtil method resize.

@Deprecated
public static byte[] resize(byte[] imageData, int width, int height) {
    Image image = ImagesServiceFactory.makeImage(imageData);
    Transform resize = ImagesServiceFactory.makeResize(width < 4000 ? width : 4000, height < 4000 ? height : 4000, true);
    return imagesService.applyTransform(resize, image, OutputEncoding.JPEG).getImageData();
}
Also used : Image(com.google.appengine.api.images.Image) Transform(com.google.appengine.api.images.Transform)

Aggregations

Image (com.google.appengine.api.images.Image)3 Transform (com.google.appengine.api.images.Transform)3 BlobKey (com.google.appengine.api.blobstore.BlobKey)1 BlobstoreService (com.google.appengine.api.blobstore.BlobstoreService)1 ImagesService (com.google.appengine.api.images.ImagesService)1 GcsFileOptions (com.google.appengine.tools.cloudstorage.GcsFileOptions)1 GcsFilename (com.google.appengine.tools.cloudstorage.GcsFilename)1 File (java.io.File)1 FileInputStream (java.io.FileInputStream)1 PrintWriter (java.io.PrintWriter)1 ByteBuffer (java.nio.ByteBuffer)1 FileChannel (java.nio.channels.FileChannel)1