The DMS Ruby extension includes a native wrapper for libdmtx. This provides a much more
reliable bar-code system by which to scan and identify documents. For example,
the following is the image matrix produced for the text lorem
ipsum
:
You can store an arbitrarily amount of text in the image. The image just grows with the amount of data. For example, consider the following data:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam id neque velit. Integer ultricies, tortor et luctus tempus, mi urna facilisis velit, ultricies ornare dolor mauris elementum leo. Proin suscipit, enim eu gravida posuere, justo lorem vestibulum risus, quis scelerisque lacus tortor ut sapien. Aliquam erat volutpat. Aliquam erat volutpat. In vitae quam leo. Morbi urna metus, euismod quis ultrices sed, commodo ac risus. Fusce elementum vehicula nunc, non lacinia libero convallis vel. Maecenas elementum imperdiet dui quis venenatis. Vestibulum cursus risus vel sapien egestas lacinia. Pellentesque urna lacus, mattis vel rhoncus sed, laoreet eu lacus. Nulla ut velit turpis. Cras et ornare est. Fusce pellentesque feugiat magna faucibus tempor. Cras sit amet felis ligula, non egestas urna. Pellentesque accumsan massa quis lacus viverra consectetur. Nunc velit lacus, bibendum vitae lacinia sit amet, lobortis fringilla risus.
Here is the corresponding DMTX image produced for that text:
The Ruby extension follows the exact same API as the native Ruby wrapper in the DMTX source distribution, but builds natively for Ruby 1.9.x. The following code (adapted from the Ruby test suite) illustrates it's use:
require 'rubygems' require 'RMagick' require 'jw/dms' $file = 'output.png' $text = 'some random text' dmtx = JW::DMS::Dmtx.new() dmtx.encode($text).write($file) images = Magick::Image.read($file) images.each do |image| decodedValue = dmtx.decode(image, 100) if not decodedValue.empty? assert decodedValue[0] == $text end end
You will need to make sure you have the DMTX dev library package and the Ruby RMagic gem installed. To do this on Ubuntu, do the following:
bash $
sudo apt-get install libdmtx-devbash $
sudo apt-get install libmagick++-dev libmagickcore-dev libmagickwand-devbash $
sudo gem1.9.1 install rmagick