Top 10 Reasons to Use an Imaging SDK

After being in this industry for a while, it’s always fun when new hires and college recruits come in with varying degrees of experience. Some are well-versed in the SDK world, while others are dead-set on using notepad and doing everything from scratch. This gave us the idea to come up with 10 reasons to use an imaging SDK, or even just an SDK in general. So here they are in a semi-particular order, because many of them build off of or hinge upon the first two:

  1. Save time. Many features found in imaging SDKs such as OCR, Barcode, Forms, DICOM, PACS, etc. would take years to develop on your own. Using an SDK can shorten your development life cycle to less than a month.
  2. Save money. In the business world, most of us don’t have the luxury of waiting years to develop a product. The time saved by using an SDK can easily recoup the development costs since you can start selling your product much earlier.
  3. Two heads are better than one. SDKs let you borrow from another developer’s expertise so you can focus on yours.
  4. Nothing new under the sun. No sign of disrespect, but your project or something similar to it has probably been done before. A well-respected SDK with a wide user-base has valuable insight and experience that could help you with more than just calling its functions.
  5. Dependable libraries have already gone through the wringer. This is especially true for established commercial libraries and oftentimes less for open-source. When an SDK is that company’s line of business, you can trust that they have tested it and ensured its quality across a wide variety of platforms, images, and scenarios.
  6. Expand your customer base. SDKs can give you a greater confidence in bidding on more diverse projects, tapping in to additional revenue sources.
  7. Easy cure for feature creep. Usually looked upon as a negative in the development process, feature creep can be handled with grace and ease with the right SDK. Impress your bosses and clients with how fast you can go with the flow and expand your project’s scope.
  8. Easy to find help. The more popular an SDK is, the easier it will be to find help using it. This can be directly through that SDK’s customer service, 3rd party forums, blogs, or even bringing in contract work for your project.
  9. Compliance. Ever looked through the specifications for a file format? How about DICOM? Beyond the baseline complications of decoding and encoding information correctly, vertical markets such as health care and government require a high level of security and compliance that an SDK will help navigate and keep your product in line with.
  10. Fun! This may be more subjective and personality-dependent, but I think the vast majority of us find great satisfaction in trying new things and creating a variety of projects. Rather than working on one thing for an extended time, using SDK can open up the door to completing many different projects over the course of your programming career.

If we’ve somehow convinced you in this post, or if you were already attune to the benefits of using an imaging SDK, you can take a deeper look and learn why you should choose LEADTOOLS as your imaging SDK provider.

Posted in General | Tagged , , , , , | Leave a comment

Faster Loading of Large Series in HTML5/JavaScript Medical Viewer

As we continue down the road from our recent LEADTOOLS Version 19 April Update, we are particularly excited about the enhancement we’re going into more detail about today. As you might see from the title, our engineers were able to speed up the HTML5/JavaScript Medical Viewer.

No, this isn’t one of those “it’s faster” kind of announcements because we tested it on a new server or installed Google Fiber (technically, that’s still under construction but we’re kind of excited about that here in Charlotte, NC…back to my point!!!). This is a really big deal, and are talking about improvements of up to 5 – 12 times faster loading speeds! This update loads DICOM images over the web at nearly the same speed as a desktop application.

You aren’t likely going to notice this on just a single image or a small series of images. Once you start getting into the triple digits though, prepare to be amazed. The need for this improvement has risen from the wonderful reality that modalities such as CT and MRI are getting better and better, capturing more slices and at higher resolutions.

To demonstrate, we’ve put together a simple side-by-side screen capture of the old and new code retrieving the same series:

If you are currently using the LEADTOOLS HTML5 Medical Viewer, you can either try it out for yourself on our live online demo, or download the latest setup for LEADTOOLS Version 19 to get the latest codebase with these massive speed improvements.

Posted in Medical Imaging | Tagged , , , , , , , , , | Leave a comment

Enable HTTPS in the LEADTOOLS Web Scanning Host Demonstration

Overview

HTTPS (HTTP over SSL/TLS) security is a requirement for many web applications. When properly implemented, HTTPS ensures that the traffic received was really sent from the expected endpoint, protecting the client and server. When a web application is secured via HTTPS, all resources, including web services, must also be secure. Fortunately, HTTPS support is practically ubiquitous and most of the plumbing is already in place. However, HTTPS requires a machine-specific certificate, which is why HTTPS is not enabled in the LEADTOOLS Web Scanning Host demonstration by default.

Web Scanning Host

The LEADTOOLS Web Scanning Host bridges the gap between the browser and client’s desktop. TWAIN is a messaging protocol that relies on a window handle as a target. This means that TWAIN scanners are not available in JavaScript or Silverlight. This is an obvious problem for web developers. A WCF service class can be self-hosted and used as a proxy to cross this boundary. The LEADTOOLS Web Scanning Host demonstration is a self-hosted WCF implementation with CORS and HTTPS support.

The project can be found in the LEADTOOLS installation folder: “C:\LEADTOOLS 19\Examples\DotNet\CS\Leadtools.WebScanning.Host”

In addition to the Web Scanning Host demonstration, LEADTOOLS includes a web scanning demonstration with HTML and TypeScript source code. It may be found in this folder: “C:\LEADTOOLS 19\Examples\JS\Documents\ScanningDemo”

Objectives

Enable HTTPS support in the LEADTOOLS Web Scanning Host demonstration application, so the services can be accessed from secure web applications such as Microsoft Dynamics CRM.

Get LEADTOOLS 19

The first step is to install LEADTOOLS and get a development license. If you just want to test without purchasing a development license, you can register to get a time-limited, but fully-functional evaluation development license. Register for the LEADTOOLS Evaluation SDK for Windows to get an evaluation development license emailed to the address you register. The Main Evaluation SDK also includes the projects and LEADTOOLS binaries that are required to complete this project.

Add HTTPS Support to the Host

Adding HTTPS support to the web scanning host does not require any source code changes. To enable HTTPS support, you need to modify the conditional compilation symbols in the project’s build settings to include HTTPS_SUPPORT.

Once HTTPS_SUPPORT has been defined, the next step is to purchase or create an SSL certificate that can be used to encrypt the traffic between the client and service. There are at least three ways to get an SSL certificate, each with pros and cons.

  • Create a self-signed certificate to be used as a trusted root certificate and create a host certificate using the trusted self-signed certificate. This is the easiest for developers to do. The drawback is that the certificate is only trusted on the machine the certificate is created. This means that the web application calling the service will only work on that computer. However, for development and internal deployments, it is hard to beat the cost (nothing).
  • Create a certificate signed by an internal or domain Certificate Authority (CA). These certificates are usually trusted across the domain, but the IT department might need to be involved and it is possible that your organization does not have an internal CA. Still, each client that will be running the host will need a machine-specific SSL certificate, but it could allow users to share a scanner.
  • Purchase an SSL certificate from an external trusted authority such as Symantec (VeriSign), Thawte, or GoDaddy. This has the same benefits as a domain certificate, but does not require a domain certificate authority. The drawback is that this is the most expensive option, which could be prohibitive.

There are many resources on the Internet that explain each of the options described above in more detail. No matter which certificate option chosen, steps 4-7 of the instructions below will be the same.

For the purposes of demonstrating the Web Scanning Host, the steps to create, store, and bind a self-signed certificate follow. The tools used are MakeCert.exe, MMC or CertUtil.exe, and netsh.

  1. Start an elevated (run as administrator) Visual Studio 2012 (or newer) command prompt. The version of MakeCert.exe is very important as discussed in the “MakeCert Hell” post. As long as a Visual Studio 2012 or new command prompt is used, the MakeCert version will be correct.
  2. makecert-authority
    Use MakeCert.exe to create a self-signed root certificate that can be used as a Certificate Authority.
    1
    2
    3
    4
    ^
    makecert -sv SignRoot.pvk -cy authority -r signroot.cer ^
    -a sha256 -n "CN=Dev Certification Authority" -ss root ^
    -sr localmachine
    This will display a message box asking to set a password. Click the None button.
  3. makecert-endpoint
    Use MakeCert.exe to create an endpoint certificate for HTTPS communication. The host name in the certificate must match the host used to call the self-hosted service. In this example, the loopback address of 127.0.0.1 is used as the host name.
    1
    2
    3
    4
    5
    ^
    makecert -iv SignRoot.pvk -ic signroot.cer -a sha256 ^
    -cy end -pe -n CN="127.0.0.1" -eku 1.3.6.1.5.5.7.3.1 ^
    -ss my -sr localmachine -sky exchange ^
    -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
  4. mmc-certificates
    Netsh is used to bind the certificate to a specific IP, port, and application. The certificate thumbprint (hash) is used to identify the certificate.

    The thumbprint can be manually retrieved by running MMC and adding the certificate add-in for the Local Computer account. Double-click the certificate, go to the Details tab, select Thumbprint, highlight the value and press Ctrl + C to copy.

    get_hash-batch
    Alternatively, you can create a simple batch file to use certutil.exe to get the thumbprint:
    1
    2
    3
    4
    @echo off
    for /F "delims=: tokens=2" %%a in ('certutil -store -silent my 127.0.0.1 ^| findstr /B "Cert Hash(sha1):"') do set _hash=%%a
    set _hash=%_hash: =%
    echo %_hash%
  5. An application id is also required by netsh to identify the application. That is the service host’s assembly GUID and can be found in the AssemblyInfo.cs file of the service project.
    1
    2
    3
    // The following GUID is for the ID of the typelib
    // if this project is exposed to COM
    [assembly: Guid("813dfac6-3868-4e87-87de-f3d7c5572068")]
  6. Call netsh to bind the certificate for SSL on the correct IP, port, and application.
    1
    2
    3
    4
    ^
    netsh http add sslcert ipport=0.0.0.0:443 ^
    certhash=ff9a8ebcaf68797eff36f8ae9b0739a288292f50 ^
    appid={813dfac6-3868-4e87-87de-f3d7c5572068}
    Replace the certhash and appid with your values. The binding may be verified by running the following command:
    1
    netsh http show sslcert ipport=0.0.0.0:443
    Put all of these together into a batch file and you have a simple way to create a self-signed certificate and bind it to the IP and application.

Conclusion

Enabling HTTPS support is an important first step in bridging the gap between secured browser applications such as Dynamics CRM and the desktop. However, HTTPS is not enabled by default because a machine-specific certificate is required to encrypt the connection. Fortunately, the steps required can be done easily and without the need to purchase a certificate.

Support

Need help getting this sample up and going? Contact our support team for free technical support! For pricing or licensing questions, you can contact our sales team (sales@leadtools.com) or call us at 704-332-5532.

Posted in TWAIN Scanning | Tagged , | Leave a comment

OCR Features Video

Today, we published a new video that highlights some of the LEADTOOLS OCR SDK features that set it apart from the competition. Thousands of developers rely on the LEADTOOLS OCR SDK to create enterprise-level OCR, forms processing, MICR, and OMR solutions. Watch the LEADTOOLS OCR SDK features video to see why.

We hope you enjoy the video. If there are any specific LEADTOOLS features you want to see highlighted on our YouTube channel, please let us know!

Posted in OCR | Tagged , , , | Leave a comment

New Imaging Technology for Java Programmers

Last week we touched briefly on the new Java libraries in our post about the latest Document Imaging features for Linux in LEADTOOLS. Today we’ll take a closer look at what the LEADTOOLS April update has for Java programmers as a whole, because it extends far beyond just Linux and document imaging.

The recent LEADTOOLS Version 19 update added far-reaching Java support for both Windows and Linux operating systems. These new, highly-requested imaging libraries for Java include functionality for nearly all markets and imaging technologies that LEADTOOLS is known for:

  • Viewers
  • Image formats
  • Compression
  • Image processing
  • Document Viewer and Converter
  • OCR
  • Barcode
  • Annotations
  • DICOM

With Java comfortably holding one of the top spots in the world among programming languages, there are bound to be a huge number of developers and project managers ready and searching for ways to add imaging technology to their existing applications. This much is true from our conversations with customers looking for OCR, barcode, image conversion, and the like. We are happy to fill that need for the many Java development shops out there.

Also, Java developers working on new projects will be ready to create just about any application their clients might need on Linux and Windows. These new libraries closely resemble their .NET counterparts, which means if your goal is to port an existing application to the Java platform, you’ll have a fairly smooth transition.

Click here to learn more about LEADTOOLS Imaging Technology for Java.

Posted in News | Tagged , , , , , , , , , , , , | 2 Comments