// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = "";

// Create directory if it is not already present.
File file = new File(dataDir);
if(!file.exists())
	file.mkdir();

// Instantiate a Workbook
Workbook workbook = new Workbook();

// Get a reference of comments collection with the first sheet
com.aspose.cells.CommentCollection comments = workbook.getWorksheets().get(0).getComments();

// Add a comment to cell A1
int commentIndex = comments.add(0, 0);
com.aspose.cells.Comment comment = comments.get(commentIndex);
comment.setNote("First note.");
comment.getFont().setName("Times New Roman");

// Load an image
String filename = dataDir + "image.jpg";
byte[] result = null;
java.nio.channels.FileChannel  fc = null;
try {
	    fc = new java.io.RandomAccessFile(filename, "r").getChannel();
	    java.nio.MappedByteBuffer byteBuffer = fc.map(java.nio.channels.FileChannel.MapMode.READ_ONLY, 0,
	            fc.size()).load();
	    System.out.println(byteBuffer.isLoaded());
	    result = new byte[(int) fc.size()];
	    if (byteBuffer.remaining() > 0) {
	        byteBuffer.get(result, 0, byteBuffer.remaining());
    }
} catch (IOException e) {
      throw e;
} finally {
      try {
          fc.close();
      } catch (IOException e) {
    	    throw e;
      }
}

// Set image data to the shape associated with the comment
comment.getCommentShape().getFill().setImageData(result);

// Save the workbook
String resDataDir = dataDir + "commentwithpicture1.out.xlsx";
workbook.save(resDataDir);