asposeimagingjava 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/LICENSE +21 -0
  4. data/README.md +33 -0
  5. data/Rakefile +2 -0
  6. data/asposeimagingjava.gemspec +27 -0
  7. data/config/aspose.yml +5 -0
  8. data/data/aspose.bmp +0 -0
  9. data/data/bizcard.psd +0 -0
  10. data/data/demo.djvu +0 -0
  11. data/data/demo.tif +0 -0
  12. data/data/multipage.tiff +0 -0
  13. data/data/sample.djvu +0 -0
  14. data/data/sample.emf +0 -0
  15. data/data/sample.gif +0 -0
  16. data/data/sample.jpg +0 -0
  17. data/data/sample.png +0 -0
  18. data/data/sample.tiff +0 -0
  19. data/data/samples/sample.jpg +0 -0
  20. data/data/samples/test.jpg +0 -0
  21. data/data/test.jpg +0 -0
  22. data/data/test.tiff +0 -0
  23. data/lib/asposeimagingjava.rb +71 -0
  24. data/lib/asposeimagingjava/asposeimaging.rb +5 -0
  25. data/lib/asposeimagingjava/djvu.rb +5 -0
  26. data/lib/asposeimagingjava/djvu/convertingdjvutopdf.rb +29 -0
  27. data/lib/asposeimagingjava/djvu/convertingdjvutotiff.rb +23 -0
  28. data/lib/asposeimagingjava/djvu/convertingrangeofdjvupages.rb +26 -0
  29. data/lib/asposeimagingjava/djvu/convertingrangeofdjvupagestoseparateimages.rb +30 -0
  30. data/lib/asposeimagingjava/djvu/convertingspecificportionofdjvupage.rb +32 -0
  31. data/lib/asposeimagingjava/drawing.rb +6 -0
  32. data/lib/asposeimagingjava/drawing/drawingarc.rb +37 -0
  33. data/lib/asposeimagingjava/drawing/drawingellipse.rb +43 -0
  34. data/lib/asposeimagingjava/drawing/drawingimagesusingcorefunctionality.rb +33 -0
  35. data/lib/asposeimagingjava/drawing/drawingimagesusinggraphics.rb +34 -0
  36. data/lib/asposeimagingjava/drawing/drawinglines.rb +53 -0
  37. data/lib/asposeimagingjava/drawing/drawingrectangle.rb +44 -0
  38. data/lib/asposeimagingjava/images.rb +20 -0
  39. data/lib/asposeimagingjava/images/addimagesasseparateframesintiff.rb +57 -0
  40. data/lib/asposeimagingjava/images/addthumbnailtoexifsegment.rb +25 -0
  41. data/lib/asposeimagingjava/images/addthumbnailtojfifsegment.rb +25 -0
  42. data/lib/asposeimagingjava/images/addwatermarktoimage.rb +30 -0
  43. data/lib/asposeimagingjava/images/adjustingcolors.rb +80 -0
  44. data/lib/asposeimagingjava/images/autocorrectorientationofjpegimage.rb +19 -0
  45. data/lib/asposeimagingjava/images/compresspngimage.rb +22 -0
  46. data/lib/asposeimagingjava/images/concatenatemultipletiffimages.rb +24 -0
  47. data/lib/asposeimagingjava/images/convertingrasterimages.rb +80 -0
  48. data/lib/asposeimagingjava/images/createjpegthumbnail.rb +21 -0
  49. data/lib/asposeimagingjava/images/cropimages.rb +63 -0
  50. data/lib/asposeimagingjava/images/datarecoverytiffimages.rb +21 -0
  51. data/lib/asposeimagingjava/images/ditheringimage.rb +19 -0
  52. data/lib/asposeimagingjava/images/exportimagetodifferentformats.rb +24 -0
  53. data/lib/asposeimagingjava/images/extracttiffframestootherformat.rb +19 -0
  54. data/lib/asposeimagingjava/images/readandmodifyjpegexiftags.rb +91 -0
  55. data/lib/asposeimagingjava/images/resizeimage.rb +63 -0
  56. data/lib/asposeimagingjava/images/rotateandflipimage.rb +18 -0
  57. data/lib/asposeimagingjava/images/specifybitdepthforpngimage.rb +25 -0
  58. data/lib/asposeimagingjava/images/specifytransparencyforpngimage.rb +32 -0
  59. data/lib/asposeimagingjava/metafiles.rb +2 -0
  60. data/lib/asposeimagingjava/metafiles/convertmetafiletootherformats.rb +28 -0
  61. data/lib/asposeimagingjava/metafiles/cropmetafile.rb +22 -0
  62. data/lib/asposeimagingjava/photoshop/createpsd.rb +42 -0
  63. data/lib/asposeimagingjava/photoshop/exportimagetopsd.rb +26 -0
  64. data/lib/asposeimagingjava/psd.rb +2 -0
  65. data/lib/asposeimagingjava/version.rb +3 -0
  66. data/samples/djvu.rb +13 -0
  67. data/samples/drawing.rb +14 -0
  68. data/samples/images.rb +29 -0
  69. data/samples/metafiles.rb +10 -0
  70. data/samples/psd.rb +10 -0
  71. metadata +170 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 57084ad98fddfd7e4318607de26f48a3967cbb65
4
+ data.tar.gz: 398e69ddda908a7acb5e744df57c3f1ceb84b40e
5
+ SHA512:
6
+ metadata.gz: bcc85cb440423984c3c06f44306214b490cbb9abf4e188076e2055f37559d7fc4240d68a35d0b1c5de62182f4c1d9f521fc7fdcc11ee79fda55177de4b715521
7
+ data.tar.gz: 8ffec2ba94488d5ad2ada87fde0561109a8cf4205d836adfdd13cedf1c48d132b481664c4ba00461d8e6c3391b3b6932500cca4ebe89d52cf697c69a40e719a1
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2001-2015 Aspose Pty Ltd
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,33 @@
1
+ # Aspose_Imaging_Java_for_Ruby
2
+ Aspose.Imaging Java for Ruby is a Ruby gem that demonstrates / provides the Aspose.Imaging for Java API usage examples in Ruby by using Rjb - Ruby Java Bridge.
3
+
4
+ ## Installation
5
+
6
+ Execute following command.
7
+
8
+ $ gem install asposeimagingjava
9
+
10
+ To download Aspose.Imaging for Java API to be used with these examples through RJB, Please navigate to:
11
+
12
+ http://www.aspose.com/community/files/72/java-components/aspose.imaging-for-java/default.aspx
13
+
14
+ Note: Create jars folder at root of the gem folder and copy downloaded Aspose.Imaging for java component into it.
15
+
16
+ For most complete documentation of the project, check Aspose.OCR Java for Ruby confluence wiki link:
17
+
18
+ http://www.aspose.com/docs/display/imagingjava/1.+Aspose.Imaging+Java+For+Ruby
19
+
20
+ ## Usage
21
+
22
+ You can export image to different formats using following example code.
23
+
24
+ ```ruby
25
+ require File.dirname(File.dirname(File.dirname(__FILE__))) + '/lib/asposeimagingjava'
26
+ include Asposeimagingjava
27
+ include Asposeimagingjava::ExportImageToDifferentFormats
28
+ initialize_aspose_imaging
29
+ ```
30
+ Lets understand the above code
31
+ * The first line makes sure that the Aspose.Imaging is loaded and available
32
+ * Include the files that are required to access the Aspose.Imaging
33
+ * Initialize the libraries. The aspose JAVA classes are loaded from the path provided in the aspose.yml file
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'asposeimagingjava/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'asposeimagingjava'
8
+ spec.version = Asposeimagingjava::VERSION
9
+ spec.authors = ['Aspose Marketplace']
10
+ spec.email = ['marketplace@aspose.com']
11
+ spec.summary = %q{A Ruby gem to work with Aspose.Imaging for Java libraries}
12
+ spec.description = %q{AsposeImagingJava is a Ruby gem that helps developers create, edit, draw or convert images using Aspose.Imaging for Java libraries}
13
+ spec.homepage = 'https://github.com/asposeimaging/Aspose_Imaging_Java/tree/master/Plugins/Aspose_Imaging_Java_for_Ruby'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_development_dependency 'bundler', '~> 1.7'
22
+ spec.add_development_dependency 'rake', '~> 10.0'
23
+ spec.add_development_dependency 'rspec'
24
+
25
+ spec.add_dependency 'rjb', '~> 1.5.2'
26
+
27
+ end
@@ -0,0 +1,5 @@
1
+ jar_dir: ../asposeimagingjava/jars
2
+ license_path: ../asposeimagingjava/license/path
3
+ jvm_args: -Xms512m -Xmx1G
4
+
5
+
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,71 @@
1
+ require_relative 'asposeimagingjava/version'
2
+ require_relative 'asposeimagingjava/asposeimaging'
3
+ require 'logger'
4
+ require 'rjb'
5
+
6
+ module Asposeimagingjava
7
+
8
+ class << self
9
+ attr_accessor :aspose_imaging_config
10
+ end
11
+
12
+ def initialize_aspose_imaging
13
+ aspose_jars_dir = Asposeimagingjava.aspose_imaging_config ? Asposeimagingjava.aspose_imaging_config['jar_dir'] : nil
14
+ aspose_license_path = Asposeimagingjava.aspose_imaging_config ? Asposeimagingjava.aspose_imaging_config['license_path'] : nil
15
+ jvm_args = Asposeimagingjava.aspose_imaging_config ? Asposeimagingjava.aspose_imaging_config['jvm_args'] : nil
16
+
17
+ load_aspose_jars(aspose_jars_dir, jvm_args)
18
+ load_aspose_license(aspose_license_path)
19
+ end
20
+
21
+ def load_aspose_license(aspose_license_path)
22
+ if aspose_license_path && File.exist?(aspose_license_path)
23
+ set_license(File.join(aspose_license_path))
24
+ else
25
+ logger = Logger.new(STDOUT)
26
+ logger.level = Logger::WARN
27
+ logger.warn('Using the non licensed aspose jar. Please specify path to your aspose license directory in config/aspose.yml file!')
28
+ end
29
+ end
30
+
31
+ def load_aspose_jars(aspose_jars_dir, jvm_args)
32
+ if aspose_jars_dir && File.exist?(aspose_jars_dir)
33
+ jardir = File.join(aspose_jars_dir, '**', '*.jar')
34
+ else
35
+ jardir = File.join(File.dirname(File.dirname(__FILE__)), 'jars', '**', '*.jar')
36
+ end
37
+
38
+ if jvm_args
39
+ args = jvm_args.split(' ') << '-Djava.awt.headless=true'
40
+ logger = Logger.new(STDOUT)
41
+ logger.level = Logger::DEBUG
42
+ logger.debug("JVM args : #{args}")
43
+ Rjb::load(classpath = Dir.glob(jardir).join(':'), jvmargs=args)
44
+ else
45
+ Rjb::load(classpath = Dir.glob(jardir).join(':'), jvmargs=['-Djava.awt.headless=true'])
46
+ end
47
+
48
+ end
49
+
50
+ def input_file(file)
51
+ Rjb::import('java.io.FileInputStream').new(file)
52
+ end
53
+
54
+ def set_license(aspose_license_file)
55
+ begin
56
+ fstream = input_file(aspose_license_file)
57
+ license = Rjb::import('com.aspose.api.License').new()
58
+ license.setLicense(fstream)
59
+ rescue Exception => ex
60
+ logger = Logger.new(STDOUT)
61
+ logger.level = Logger::ERROR
62
+ logger.error("Could not load the license file : #{ex}")
63
+ fstream.close() if fstream
64
+ end
65
+ end
66
+
67
+ def self.configure_aspose_imaging config
68
+ Asposeimagingjava.aspose_imaging_config = config
69
+ end
70
+
71
+ end
@@ -0,0 +1,5 @@
1
+ require_relative 'images'
2
+ require_relative 'drawing'
3
+ require_relative 'metafiles'
4
+ require_relative 'psd'
5
+ require_relative 'djvu'
@@ -0,0 +1,5 @@
1
+ require_relative 'djvu/convertingdjvutopdf'
2
+ require_relative 'djvu/convertingdjvutotiff'
3
+ require_relative 'djvu/convertingrangeofdjvupages'
4
+ require_relative 'djvu/convertingrangeofdjvupagestoseparateimages'
5
+ require_relative 'djvu/convertingspecificportionofdjvupage'
@@ -0,0 +1,29 @@
1
+ module Asposeimagingjava
2
+ module ConvertingDjVuToPdf
3
+ def initialize()
4
+ data_dir = File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) + '/data/'
5
+
6
+ # Load an existing image (of type bmp) in an instance of Image class
7
+ image = Rjb::import('com.aspose.imaging.Image').load(data_dir + "demo.djvu")
8
+
9
+ # Create an instance of PdfOptions
10
+ export_options = Rjb::import('com.aspose.imaging.imageoptions.PdfOptions').new
11
+
12
+ # Initialize the metadata for Pdf document
13
+ export_options.setPdfDocumentInfo(Rjb::import('com.aspose.imaging.fileformats.pdf.PdfDocumentInfo').new)
14
+
15
+ # Create an instance of IntRange and initialize it with the range of DjVu pages to be exported
16
+ #range = Rjb::import('com.aspose.imaging.IntRange').new(0, 5) # Export first 5 pages
17
+ range = Array[0,1,2,3,4]
18
+
19
+ # Initialize an instance of DjvuMultiPageOptions with range of DjVu pages to be exported
20
+ export_options.setMultiPageOptions(Rjb::import('com.aspose.imaging.imageoptions.DjvuMultiPageOptions').new(range))
21
+
22
+ # Save the result in PDF format
23
+ image.save(data_dir + "djvu.pdf", export_options)
24
+
25
+ # Display Status.
26
+ puts "Converted DjVu to PDF successfully!"
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,23 @@
1
+ module Asposeimagingjava
2
+ module ConvertingDjVuToTiff
3
+ def initialize()
4
+ data_dir = File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) + '/data/'
5
+
6
+ # Load an existing image (of type bmp) in an instance of Image class
7
+ image = Rjb::import('com.aspose.imaging.Image').load(data_dir + "demo.djvu")
8
+
9
+ # Create an instance of TiffOptions & use preset options for Black n While with Deflate compression
10
+ tiff_expected_format = Rjb::import('com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat')
11
+ export_options = Rjb::import('com.aspose.imaging.imageoptions.TiffOptions').new(tiff_expected_format.TiffDeflateBW)
12
+
13
+ # Initialize an instance of DjvuMultiPageOptions
14
+ export_options.setMultiPageOptions(Rjb::import('com.aspose.imaging.imageoptions.DjvuMultiPageOptions').new)
15
+
16
+ # Save the result in PDF format
17
+ image.save(data_dir + "djvu.tiff", export_options)
18
+
19
+ # Display Status.
20
+ puts "Converted DjVu to Tiff successfully!"
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,26 @@
1
+ module Asposeimagingjava
2
+ module ConvertingRangeOfDjVuPages
3
+ def initialize()
4
+ data_dir = File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) + '/data/'
5
+
6
+ # Load an existing image (of type bmp) in an instance of Image class
7
+ image = Rjb::import('com.aspose.imaging.Image').load(data_dir + "demo.djvu")
8
+
9
+ # Create an instance of TiffOptions & use preset options for Black n While with Deflate compression
10
+ tiff_expected_format = Rjb::import('com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat')
11
+ export_options = Rjb::import('com.aspose.imaging.imageoptions.TiffOptions').new(tiff_expected_format.TiffDeflateBW)
12
+
13
+ # Create an instance of IntRange and initialize it with range of pages to be exported
14
+ range = [0, 1] #Export first 2 pages
15
+
16
+ # Initialize an instance of DjvuMultiPageOptions
17
+ export_options.setMultiPageOptions(Rjb::import('com.aspose.imaging.imageoptions.DjvuMultiPageOptions').new(range))
18
+
19
+ # Save the result in PDF format
20
+ image.save(data_dir + "PagesRange.tiff", export_options)
21
+
22
+ # Display Status.
23
+ puts "Converted range of DjVu pages successfully!"
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,30 @@
1
+ module Asposeimagingjava
2
+ module ConvertingRangeOfDjVuPagesToSeparateImages
3
+ def initialize()
4
+ data_dir = File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) + '/data/'
5
+
6
+ # Load an existing image (of type bmp) in an instance of Image class
7
+ image = Rjb::import('com.aspose.imaging.Image').load(data_dir + "demo.djvu")
8
+
9
+ # Create an instance of BmpOptions
10
+ export_options = Rjb::import('com.aspose.imaging.imageoptions.BmpOptions').new
11
+
12
+ # Set BitsPerPixel for resultant images
13
+ export_options.setBitsPerPixel(32)
14
+
15
+ # Create an instance of IntRange and initialize it with range of pages to be exported
16
+ range = [0, 1] #Export first 2 pages
17
+
18
+ i = 0
19
+ while i < 2
20
+ # Save each page in separate file, as BMP do not support layering
21
+ export_options.setMultiPageOptions(Rjb::import('com.aspose.imaging.imageoptions.DjvuMultiPageOptions').new(i))
22
+ image.save(data_dir + "djvupages#{i}.bmp", export_options)
23
+ i +=1
24
+ end
25
+
26
+ # Display Status.
27
+ puts "Converted range of DjVu pages to separate images successfully!"
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,32 @@
1
+ module Asposeimagingjava
2
+ module ConvertingSpecificPortionOfDjvuPage
3
+ def initialize()
4
+ data_dir = File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) + '/data/'
5
+
6
+ # Load an existing image (of type bmp) in an instance of Image class
7
+ image = Rjb::import('com.aspose.imaging.Image').load(data_dir + "demo.djvu")
8
+
9
+ # Create an instance of PngOptions
10
+ export_options = Rjb::import('com.aspose.imaging.imageoptions.PngOptions').new
11
+
12
+ # Set ColorType to Grayscale
13
+ export_options.setColorType(Rjb::import('com.aspose.imaging.fileformats.png.PngColorType').Grayscale)
14
+
15
+ # Create an instance of Rectangle and specify the portion on DjVu page
16
+ export_area = Rjb::import('com.aspose.imaging.Rectangle').new(20, 20, 500, 500)
17
+
18
+ # Specify the DjVu page index
19
+ export_page_index = 2
20
+
21
+ # Initialize an instance of DjvuMultiPageOptions
22
+ # while passing index of DjVu page index and instance of Rectangle covering the area to be exported
23
+ export_options.setMultiPageOptions(Rjb::import('com.aspose.imaging.imageoptions.DjvuMultiPageOptions').new(export_page_index, export_area))
24
+
25
+ # Save the result in PDF format
26
+ image.save(data_dir + "SpecificPagePortion.png", export_options)
27
+
28
+ # Display Status.
29
+ puts "Converted specific page portion DjVu page to image successfully!"
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,6 @@
1
+ require_relative 'drawing/drawingimagesusingcorefunctionality'
2
+ require_relative 'drawing/drawingimagesusinggraphics'
3
+ require_relative 'drawing/drawinglines'
4
+ require_relative 'drawing/drawingellipse'
5
+ require_relative 'drawing/drawingrectangle'
6
+ require_relative 'drawing/drawingarc'
@@ -0,0 +1,37 @@
1
+ module Asposeimagingjava
2
+ module DrawingArc
3
+ def initialize()
4
+ data_dir = File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) + '/data/'
5
+
6
+ # Create an instance of BmpOptions and set its various properties
7
+ create_options = Rjb::import('com.aspose.imaging.imageoptions.BmpOptions').new
8
+ create_options.setBitsPerPixel(32)
9
+
10
+ # Define the source property for the instance of BmpOptions
11
+ create_options.setSource(Rjb::import('com.aspose.imaging.sources.StreamSource').new(Rjb::import('java.io.ByteArrayInputStream').new(Array.new)))
12
+
13
+ # Create an instance of Image
14
+ image = Rjb::import('com.aspose.imaging.Image').create(create_options,100,100)
15
+
16
+ # Create an instance of Color
17
+ color = Rjb::import('com.aspose.imaging.Color')
18
+
19
+ # Create an instance of Pen
20
+ pen = Rjb::import('com.aspose.imaging.Pen')
21
+
22
+ # Create and initialize an instance of Graphics class
23
+ graphic = Rjb::import('com.aspose.imaging.Graphics').new(image)
24
+
25
+ # Clear the image surface with Yellow color
26
+ graphic.clear(color.getYellow())
27
+
28
+ # Draw arc to screen.
29
+ graphic.drawArc(pen.new(color.getBlack()), 0, 0, 100, 200, 45, 270)
30
+
31
+ # Save all changes.
32
+ image.save(data_dir + "DrawArcExample.bmp")
33
+
34
+ puts "Arc have been drawn in image successfully!"
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,43 @@
1
+ module Asposeimagingjava
2
+ module DrawingEllipse
3
+ def initialize()
4
+ data_dir = File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) + '/data/'
5
+
6
+ # Create an instance of BmpOptions and set its various properties
7
+ create_options = Rjb::import('com.aspose.imaging.imageoptions.BmpOptions').new
8
+ create_options.setBitsPerPixel(32)
9
+
10
+ # Define the source property for the instance of BmpOptions
11
+ create_options.setSource(Rjb::import('com.aspose.imaging.sources.StreamSource').new(Rjb::import('java.io.ByteArrayInputStream').new(Array.new)))
12
+
13
+ # Create an instance of Image
14
+ image = Rjb::import('com.aspose.imaging.Image').create(create_options,100,100)
15
+
16
+ # Create an instance of Color
17
+ color = Rjb::import('com.aspose.imaging.Color')
18
+
19
+ # Create an instance of Pen
20
+ pen = Rjb::import('com.aspose.imaging.Pen')
21
+
22
+ # Create and initialize an instance of Graphics class
23
+ graphic = Rjb::import('com.aspose.imaging.Graphics').new(image)
24
+
25
+ # Clear the image surface with Yellow color
26
+ graphic.clear(color.getYellow())
27
+
28
+ solid_brush = Rjb::import('com.aspose.imaging.brushes.SolidBrush')
29
+ rectangle = Rjb::import('com.aspose.imaging.Rectangle')
30
+
31
+ # Draw a dotted ellipse shape by specifying the Pen object having red color and a surrounding Rectangle
32
+ graphic.drawEllipse(pen.new(color.getRed()), rectangle.new(30, 10, 40, 80))
33
+
34
+ # Draw a continuous ellipse shape by specifying the Pen object having solid brush with blue color and a surrounding Rectangle
35
+ graphic.drawEllipse(pen.new(solid_brush.new(color.getBlue())), rectangle.new(10, 30, 80, 40))
36
+
37
+ # Save all changes.
38
+ image.save(data_dir + "DrawEllipseExample.bmp")
39
+
40
+ puts "Ellipse have been drawn in image successfully!"
41
+ end
42
+ end
43
+ end