Skip to content

Instantly share code, notes, and snippets.

View ESidenko's full-sized avatar

Evgeniy Sidenko ESidenko

  • aspose.com
  • Kazakhstan
View GitHub Profile
@ESidenko
ESidenko / Deskew.java
Created September 15, 2019 09:38
Aspose.Imaging for Java
import com.aspose.imaging.Color;
import com.aspose.imaging.Image;
import com.aspose.imaging.RasterImage;
import com.aspose.imaging.examples.Utils;
public class Deskew
{
public static void main(String... args)
{
// The path to the documents directory.
@ESidenko
ESidenko / MemoryStrategyOptimizationCMX.java
Created October 8, 2019 17:51
Memory Strategy optimization
// Setting a memory limit of 10 megabytes for target loaded image
LoadOptions loadOptions = new LoadOptions();
loadOptions.setBufferSizeHint(10);
try (Image image = Image.load("example.cmx", loadOptions))
{
CmxRasterizationOptions vectorOptions = new CmxRasterizationOptions();
vectorOptions.setTextRenderingHint(TextRenderingHint.SingleBitPerPixel);
vectorOptions.setSmoothingMode(SmoothingMode.AntiAlias);
vectorOptions.setPositioning(PositioningTypes.DefinedByDocument);
@ESidenko
ESidenko / Examples-Java-DrawingAndFormattingImages-DrawingUsingGraphics.java
Created October 8, 2019 18:39
Drawing Images using Graphics : Complete Source
// The path to the documents directory.
String dataDir = "images/";
//Create an instance of BmpCreateOptions and set its various properties
try(com.aspose.imaging.imageoptions.BmpOptions createOptions = new com.aspose.imaging.imageoptions.BmpOptions())
{
createOptions.setBitsPerPixel(24);
//Create an instance of FileCreateSource and assign it to Source property
createOptions.setSource(new com.aspose.imaging.sources.FileCreateSource(dataDir + "sample.bmp",false));
@ESidenko
ESidenko / MemoryStrategyOptimizationGraphics.java
Created October 8, 2019 18:48
Memory Strategy optimization
final int ImageSize = 2000;
try (ImageOptionsBase createOptions = new PngOptions())
{
createOptions.setSource(new FileCreateSource("temporary.png"));
createOptions.setBufferSizeHint(30); // Memory limit is 30 Mb
try (Image image = Image.create(createOptions, ImageSize, ImageSize))
{
Graphics graphics = new Graphics(image);
// You can use any graphic operations here, all of them will be performed within the established memory limit
// For example:
@ESidenko
ESidenko / Examples-Java-JPEG-ReadJpegEXIFTags-ReadJpegEXIFTags.java
Created October 8, 2019 19:06
Using JpegExifData Class to Read and Modify Jpeg EXIF Tags
// The path to the documents directory.
String dataDir = "data\\";
try (JpegImage image = (JpegImage)Image.load(dataDir + "aspose-logo.jpg"))
{
JpegExifData exifData = image.getExifData();
System.out.println("Camera Owner Name: " + exifData.getCameraOwnerName());
System.out.println("Aperture Value: " + exifData.getApertureValue());
System.out.println("Orientation: " + ExifOrientation.toString(ExifOrientation.class, exifData.getOrientation()));
System.out.println("Focal Length: " + exifData.getFocalLength());
System.out.println("Compression: " + exifData.getCompression());
@ESidenko
ESidenko / MemoryStrategyOptimizationJPEG.java
Created October 8, 2019 19:22
Memory Strategy optimization
LoadOptions options = new LoadOptions();
options.setBufferSizeHint(50);
// Setting a memory limit of 50 megabytes for target loaded image
try (Image image = Image.load("inputFile.jpg", options))
{
JpegOptions jpegOptions = new JpegOptions();
jpegOptions.setCompressionType(JpegCompressionMode.Baseline);
jpegOptions.setQuality(100);
image.save("outputFile_Baseline.jpg", jpegOptions);
@ESidenko
ESidenko / ProgressCallback.java
Created November 19, 2019 06:30
Image load/save indication progress
// Example of use of separate operation progress event handlers for load/export operations
String fileName = "some file to load";
LoadOptions loadOptions = new LoadOptions();
loadOptions.setProgressEventHandler(new ProgressEventHandler()
{
@Override
public void invoke(ProgressEventHandlerInfo info)
{
System.out.format("Load event %s : %d/%d\n", EventType.toString(EventType.class, info.getEventType())
, info.getValue(), info.getMaxValue());
@ESidenko
ESidenko / SvgNativeResize.java
Created November 19, 2019 06:37
Resizing Images : Svg native resize
String inputFileName = "Logotype.svg";
try (Image image = Image.load(inputFileName))
{
image.resize(image.getWidth() * 10,image.getHeight() * 15);
image.save("Logotype_10_15.png", new PngOptions()
{{
setVectorRasterizationOptions(new SvgRasterizationOptions());
}});
}
@ESidenko
ESidenko / MemoryStrategyOptimizationJPEG2000.java
Created December 23, 2019 18:10
Loading and creating of JPEG2000 images can be proceeded using memory strategy optimization - ie limiting memory buffer size for operation.
// Setting a memory limit of 10 megabytes for target loaded image
// JP2 codec
try (Image image = Image.load("inputFile.jp2", new LoadOptions() {{ setBufferSizeHint(10); }}))
{
image.save("outputFile.jp2");
}
// J2K codec
try (Image image = Image.load("inputFile.j2k", new LoadOptions() {{ setBufferSizeHint(10); }}))
{
@ESidenko
ESidenko / MemoryStrategyOptimizationDJVU.java
Created December 23, 2019 18:21
Loading of Djvu images can be proceeded using memory strategy optimization - ie limiting memory buffer size for operation.
// Setting a memory limit of 50 megabytes for target loaded image
try (DjvuImage image = (DjvuImage)Image.load("test.djvu", new LoadOptions() {{ setBufferSizeHint(50); }}))
{
int pageNum = 0;
for (DjvuPage page : image.getPages())
{
page.save("page" + pageNum + ".png", new PngOptions());
pageNum++;
}
}