var inputFile = Path.Combine(dataDir, "add-image.pdf");
var outputFile = Path.Combine(dataDir, "add-image_out.pdf");
var imageFile = Path.Combine(dataDir, "aspose-logo.jpg");
var pdfDocument = new Aspose.Pdf.Document(inputFile);
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;
var page = pdfDocument.Pages[1];
var imageStream = new FileStream(imageFile, FileMode.Open);
page.Resources.Images.Add(imageStream);
page.Contents.Add(new Aspose.Pdf.Operators.GSave());
var rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
var matrix = new Aspose.Pdf.Matrix([rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY]);
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
var ximage = page.Resources.Images[page.Resources.Images.Count];
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());
pdfDocument.Save(outputFile);