Working with images

To add an image, call the IDrawingService addImage() method with IDrawingInputBuilder:

Usage example

import com.intechcore.scomponents.scell.api.spreadsheet.model.IWorksheet;
import com.intechcore.scomponents.scell.api.spreadsheet.service.util.ILoggerFactory;
import com.intechcore.scomponents.scell.api.IScellApiResolver;
import com.intechcore.scomponents.scell.api.init.ScellApiEntryPoint;
import com.intechcore.scomponents.scell.api.spreadsheet.IScellCoreApiFactory;
import com.intechcore.scomponents.scell.api.spreadsheet.model.IWorkbook;
import com.intechcore.scomponents.scell.api.spreadsheet.service.IDrawingService;
import com.intechcore.scomponents.scell.api.spreadsheet.service.builder.IDrawingInputBuilder;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;

import java.io.IOException;
import java.util.concurrent.CompletableFuture;

public class ImageExample {
    public static void main(String[] args) {
        ScellApiEntryPoint.getApiResolverAsync().thenAccept(apiResolver -> {

            IScellCoreApiFactory apiProvider = apiResolver.resolve(IScellCoreApiFactory.class);

            IWorkbook workbook = apiProvider.createNew();
            Logger logger = apiResolver.resolve(ILoggerFactory.class).getLogger(ImageExample.class);
            IWorksheet worksheet = workbook.getFirst();
            byte[] imageRaw;
            try {
                imageRaw = IOUtils.toByteArray(ImageExample.class.getResourceAsStream("/test.jpg"));
            } catch (IOException e) {
                logger.error("Image content read error", e);
                return;
            }

            IDrawingService drawingService = worksheet.getImageService();

            try {
                drawingService.addImage(
                        apiResolver.resolve(IDrawingInputBuilder.class)       // default start anchor cell - A1
                                .setContent(imageRaw)                         // set image content
                                .setToSingleCell(true)                        // add images into single cell
                                .build());

                drawingService.addImage(
                        apiResolver.resolve(IDrawingInputBuilder.class)
                                .fromCell(3, 3)                // set start anchor cell
                                .fromCellWithOffset(2, 3)      // set start anchor cell offset, points
                                .setDesiredWidth(345)          // decrease image's size
                                .setDesiredHeight(460.5)
                                .setContent(imageRaw)
                                .build());
            } catch (IOException e) {
                e.printStackTrace();
            }

            workbook.getWriter().fileName("imageExample").save();

        }).join();
    }
}