public void collage()

in services/collage/java/src/main/java/services/CollageService.java [41:88]


    public void collage() throws Exception {
    
    // get current Project ID
    System.out.println("Project ID = " + projectID);
    System.out.println("Thumbnails Bucket = " + thumbnails);

    // access collection group in Firestore
    Firestore fs = FirestoreOptions.getDefaultInstance().toBuilder()
        .setProjectId(projectID)
        .setCredentials(GoogleCredentials.getApplicationDefault())
        .build().getService();
    ApiFuture<QuerySnapshot> query = fs.collectionGroup("pictures")
        .whereEqualTo("thumbnail",Boolean.TRUE)
        .orderBy("created", Query.Direction.DESCENDING)
        .limit(4).get();
    List<QueryDocumentSnapshot> documents = query.get().getDocuments();
    Storage storage = StorageOptions.newBuilder()
        .setProjectId(projectID)
        .setCredentials(GoogleCredentials.getApplicationDefault())
        .build()
        .getService();

    // how items did we get
    int docSize = documents.size();

    // thumbnails downloading
    MagickImage[] imagesInfos = new MagickImage[docSize];
    System.out.println(String.format("Collage of %d images:", docSize));
    for (int pictureIndex = 0 ; pictureIndex < docSize ; pictureIndex++) {
        Blob pictureBlob = storage.get(thumbnails, documents.get(pictureIndex).getId());
        String pictureName = pictureBlob.getName();
        System.out.println(pictureName);
        pictureBlob.downloadTo(Paths.get("/tmp/" + pictureName));
        ImageInfo imgInfo = new ImageInfo("/tmp/" + pictureName);
        imagesInfos[pictureIndex] = new MagickImage(imgInfo);
    }
    //picture creation from thumbnails
    MagickImage collage = new MagickImage(imagesInfos);
    ImageInfo imageInfo = new ImageInfo("/tmp/collage.png");
    imageInfo.setTile("2x2");
    MontageInfo montageInfo = new MontageInfo(imageInfo);
    collage.setFileName("/tmp/collage.png");
    collage = collage.montageImages(montageInfo);
    collage.writeImage(imageInfo);
    BlobId blobId = BlobId.of(thumbnails, "collage.png");
    BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("image/png").build();
    storage.create(blobInfo, Files.readAllBytes(Paths.get("/tmp/collage.png")));
 }