Package com.google.appengine.api.images

Examples of com.google.appengine.api.images.Image


      bf.close();
    }
  }

  private byte[] resizeImage(byte[] data){
    Image oldImage = ImagesServiceFactory.makeImage(data);
        Transform resize = ImagesServiceFactory.makeResize(620, 620);

        Image newImage = imagesService.applyTransform(resize, oldImage);

        byte[] newImageData = newImage.getImageData();
       
        return newImageData;
  }
View Full Code Here


    ImagesService imagesService = ImagesServiceFactory.getImagesService();

    HTTPResponse fetchResponse;
    try {
      fetchResponse = fetchService.fetch(new URL(url));
      Image originalImage = ImagesServiceFactory.makeImage(fetchResponse.getContent());

      AppEngineFile file = fileService.createNewBlobFile("image/" + originalImage.getFormat());
      FileWriteChannel writeChannel = fileService.openWriteChannel(file, true);
      ByteBuffer buffer = ByteBuffer.wrap(originalImage.getImageData());
      writeChannel.write(buffer);
      writeChannel.closeFinally();
      BlobKey key = fileService.getBlobKey(file);
      String servingURL = imagesService.getServingUrl(key);
      if (servingURL != null) {
View Full Code Here

      // fetch image url
      URL imageUrl = new URL(selectedPhotoUrl);
      byte[] imageBytes = IOUtils.toByteArray(imageUrl.openStream());
     
      // Convert to image to make sure it is valid
      Image image = ImagesServiceFactory.makeImage(imageBytes);
     
      // Crop if necessary
      if (Strings.hasContent(p.crop())) {
        if (p.x2() - p.x1() > 10 && p.y2() - p.y1() > 10) {
          double xs = image.getWidth();
          double ys = image.getHeight();
          Transform crop = ImagesServiceFactory.makeCrop(p.x1() / xs, p.y1() / ys, p.x2() / xs, p.y2() / ys);
         
          OutputSettings jpeg = new OutputSettings(OutputEncoding.JPEG);
          image = ImagesServiceFactory.getImagesService().applyTransform(crop, image, jpeg);
        }
      }
     
      final ProfilePictureData profilePicture = ProfilePictureData.getProfilePicture(image.getImageData());
      ProfilePicture.saveProfilePicture(user, pm, profilePicture);
     
      userAuthenticator.userUpdated(new KTrans<User>(pm) {
        @Override protected User call() {
           User u = QueryBuilder.begin(pm, User.class).getSingleByKey(user.getKey());
View Full Code Here

   */
  public static ProfilePictureData getProfilePicture(byte[] rawProfilePictureBytes) {
    if (rawProfilePictureBytes == null || rawProfilePictureBytes.length == 0)
      return null;
   
    Image uploadedImage = ImagesServiceFactory.makeImage(rawProfilePictureBytes);
   
    Image profilePicture = normalizeProfilePicture(uploadedImage);
    byte[] imageData = profilePicture.getImageData();
   
    return new ProfilePictureData(imageData, Encoding.md5(imageData), profilePicture.getWidth(), profilePicture.getHeight());
  }
View Full Code Here

    ImagesService imagesService = ImagesServiceFactory.getImagesService();
    Transform resize = ImagesServiceFactory.makeResize(250, 500);
   
    OutputSettings jpeg = new OutputSettings(OutputEncoding.JPEG);
   
    Image profileImage = imagesService.applyTransform(resize, uploadedImage, jpeg);
    if (profileImage.getFormat() != Format.JPEG)
      throw new AssertionError("Wrong format: " + profileImage.getFormat());
   
    return profileImage;
  }
View Full Code Here

        data.put("size", info.getSize());
        String mimeType = info.getContentType();
        data.put("mimeType", mimeType);
        data.put("filename", info.getFilename());
        if (mimeType.startsWith("image/")) {
          Image img = attemptGetImageMetadata(blobstoreService, info);
          if (img != null) {
            JSONObject imgData = new JSONObject();
            imgData.put("width", img.getWidth());
            imgData.put("height", img.getHeight());
            data.put("image", imgData);

            JSONObject thumbData = new JSONObject();
            double ratio = resizeRatio(img);
            thumbData.put("width", ratio * img.getWidth());
            thumbData.put("height", ratio * img.getHeight());
            data.put("thumbnail", thumbData);
          }
        } else {
          // TODO(danilatos): Thumbnails for non-images
          log.info("Unimplemented: Thumbnails for non-images");
View Full Code Here

  }

  public byte[] getResizedImageBytes(BlobKey id, int width, int height) {
    log.info("Resizing " + id + " to " + width + "x" + height);
    // emptyImage is just a wrapper around the id.
    Image emptyImage = ImagesServiceFactory.makeImageFromBlob(id);
    Transform resize = ImagesServiceFactory.makeResize(width, height);
    return imagesService.applyTransform(resize, emptyImage).getImageData();
  }
View Full Code Here

    }
    final int readPortion = headerBytesUpperBound;
    BlobKey key = info.getBlobKey();
    byte[] data = blobstore.fetchData(key, 0, readPortion);
    try {
      Image img = ImagesServiceFactory.makeImage(data);
      // Force the image to be processed
      img.getWidth();
      img.getHeight();
      return img;
    } catch (RuntimeException e) {
      log.log(Level.SEVERE, "Problem getting image metadata; ignoring", e);
      return null;
    }
View Full Code Here

      try {
        bytes = blobstoreService.fetchData(blobKey, 0, info.getSize());
      }
      catch ( Exception e){
        // If not possible, first resize to acceptable size
        Image bigImage = ImagesServiceFactory.makeImageFromBlob(blobKey);
        Transform initialResize = ImagesServiceFactory.makeResize(1024, 4000);
        Image resizedImage = imagesService.applyTransform(initialResize, bigImage);
        bytes = resizedImage.getImageData();
      }
     
      // We now have an acceptable image for further processing 
      Image oldImage = ImagesServiceFactory.makeImage(bytes);

      Integer intWidth = oldImage.getWidth();
      Integer intHeight = oldImage.getHeight();

      // step 1: create new image with white background and center image
      // in middle; return;
      // create new image with white background and center image in
      // middle; return;
      // trying composite
      if (intWidth < targetWidth && intHeight < targetHeight) {
        status = "1";
        blobKey = getBlobKeyImage(
            blobKey,
            (setImageMiddle(intWidth, intHeight, oldImage,
                imagesService)).getImageData());
        // preparing returnJSON
        String[] json = { blobKey.getKeyString(), status };
        jsonRet = new Gson().toJson(json);

      }
      // step 2: rescale image to targetWidth
      else if (intWidth > targetWidth) {
        // if ( true) {
        Transform resize = ImagesServiceFactory.makeResize(targetWidth,
            4000);

        Image newImage = imagesService.applyTransform(resize, oldImage);
        // getting the new height
        intHeight = newImage.getHeight();
        intWidth = newImage.getWidth();
        if (intHeight > targetHeight) { // step3: cropping the image
          status = "3";
          blobKey = getBlobKeyImage(blobKey, newImage.getImageData());
          String[] json = { blobKey.getKeyString(), status,
              targetWidth.toString(), targetHeight.toString(),
              intWidth.toString(), intHeight.toString() };
          jsonRet = new Gson().toJson(json);
        } else { // make the image middle
View Full Code Here

    Double dblY2 = Double.parseDouble(req.getParameter("y2")) / Double.parseDouble(req.getParameter("oriHeight"));;
    String jsonRet = null;
   
    BlobKey blobKey = new BlobKey(strBlobKey);
    ImagesService imagesService = ImagesServiceFactory.getImagesService();
    Image oldImage = ImagesServiceFactory.makeImageFromBlob(blobKey);
    Transform crop = ImagesServiceFactory.makeCrop(dblX1, dblY1, dblX2, dblY2);
    Image newImage = imagesService.applyTransform(crop, oldImage);
    FileService fileService = FileServiceFactory.getFileService();
    AppEngineFile file = fileService.createNewBlobFile("image/jpg");
    byte[] data = newImage.getImageData();

    FileWriteChannel writeChannel = fileService.openWriteChannel(file, true);
    // This time we write to the channel directly
    writeChannel.write(ByteBuffer.wrap(data));
    // Now finalize
View Full Code Here

TOP

Related Classes of com.google.appengine.api.images.Image

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.