How to Load a DICOM File From a Byte Array

Posted on 2016-10-07 10:48:09 by Greg

More often than not, DICOM files are loaded from a location on disk due to the size and complexity of the files. However, no environment and scenario is the same and we periodically get requests regarding how to load DICOM files from memory, more specifically a byte[] rather than a Stream. Due to the way that .NET garbage collection works we must use a .NET GCHandle object when passing an IntPtr to the overloaded DicomDataSet.Load function.


private byte[] loadedFile; // byte array for DICOM file from database, server, etc.
private DicomDataSet dicomDS;
private DicomElement element;

// Pin object so it is not garbage collected before work is done.
GCHandle gch = GCHandle.Alloc(loadedFile);

// Load DicomDS from byte[] using IntPtr of array.
dicomDS.Load(Marshal.UnsafeAddrOfPinnedArrayElement(loadedFile, 0),
   loadedFile.Length, DicomDataSetFlags.None);

// Unpin object.
gch.Free();

// Get image from DicomDS.
element = dicomDS.FindFirstElement(null, DicomTag.PixelData, true);
rasterImageViewer1.Image = dicomDS.GetImage(element, 0, 0,
   Leadtools.RasterByteOrder.Gray, DicomGetImageFlags.None);

To download the entire C# example project for versions 17.5 and 18, check out this forum post.

Continue Reading...

Using Video Transforms with the LEADTOOLS Media Foundation Play Control

Posted on 2016-10-07 10:47:01 by Greg

Microsoft Media Foundation is rapidly gaining ground as more and more people adopt the latest Windows Operating Systems. Naturally, it is growing in popularity among our customers since we released our Media Foundation SDK earlier this year.

LEADTOOLS includes high level controls for handling all of the core Multimedia functionality such as playback, capture and conversion. More advanced applications often implement transforms (previously known as filters in DirectShow) to add special processing to the audio and video streams. One of the most popular and flexible transforms in LEADTOOLS is the Video Callback Transform, which gives you direct access to the raw video data. With that data, and one of LEADTOOLS raster, document or medical imaging SDKs, the possibilities are quite endless.

Continue Reading...

Working HTML5 Group Annotations Programmatically - Plus a Sneak Peek at New Features

Posted on 2016-10-07 10:38:04 by Greg

This week I'd like to highlight another example project one of our support agents developed in response to a customer request. Group annotations are a necessary feature in any application utilizing annotations and markup. In fact, the LEADTOOLS HTML5 SDK includes support for group annotations out of the box by simply clicking and dragging with the select tool. However, this customer had a requirement to create and edit group annotations programmatically.

Here is how you create the annotations and then place them in groups. After that you can use the mouse to select, move and resize each group as if they were a single entity.

Continue Reading...

Continuous Multipage Scrolling in HTML5

Posted on 2016-10-07 10:34:55 by Greg

Most image viewing applications and controls are designed for viewing a single image at a time. However some images and documents, such as TIFF and PDF, have multiple pages. Since these documents are typically full of text, it is very natural to keep reading on to the next page without the need to press a button to load the next page. We have received several requests for this feature and one of our developer support agents has created an demo showing how to implement continuous multipage scrolling with our HTML5 viewer and RESTful Web Services.

The basic idea works similarly to an image slider or carousel you might see on a homepage. There is an outer container which, when scrolled to a specified location, will asynchronously create an additional HTML5 Viewer for the next page and allow you to keep scrolling until you have reached the end of the document. Below is the JavaScript snippet which modifies the DOM with jQuery and calls the LEADTOOLS Raster Web service to retrieve the image.

Continue Reading...

Using LEADTOOLS CDLL Functions in Android

Posted on 2016-10-07 10:20:31 by Greg

Android NDK for C/C++

After a successful and productive exhibit at AnDevCon, we have had a rewarding time talking to our many customers using the LEADTOOLS Android SDK. It is growing rapidly in popularity, and developers are putting it to use in many exciting ways. Fairly soon, LEADTOOLS should literally be in the palms of millions of hands around the world.

While the LEADTOOLS Android Java class library provides powerful imaging technology, some customers require native only apps or are simply more skilled and comfortable with C/C++ development. Recently, we have had several customers ask if it was possible to use LEADTOOLS C/C++ to create native Android apps (using the Android NDK) instead of using the Java class library. Never backing down from a challenge, our Developer Support agents created a sample project that shows off this functionality. Here’s a snippet of the C++ code that exposes L_IntensityDetectBitmap through JNI:

Continue Reading...
LEADTOOLS Blog

LEADTOOLS Powered by Apryse,the Market Leading PDF SDK,All Rights Reserved