Hello.

I am Paul Kinlan.

A Developer Advocate for Chrome and the Open Web at Google.

I love the web. The web should allow anyone to access any experience that they need without the need for native install or content walled garden.

Extracting text from an image: Experiments with Shape Detection

Paul Kinlan

I built a Progressive Web App (PWA) that extracts text from images shared to it. It uses the Share Target API to receive images, the Shape Detection API's TextDetector to analyze them, and EXIF-Js to handle image rotation issues. While it's a handy tool, it currently suffers from cross-browser and cross-version compatibility problems due to the lumpy nature of the web platform. The code snippets highlight key implementation details, like manifest setup, service worker handling, text extraction, and image rotation.

Read More

Detecting text in an image on the web in real-time

Paul Kinlan

I'm excited to share the latest addition to the Shape Detection API: the Text Detection API! This API allows you to detect text within images in real-time, right in the browser. It's still experimental and currently works on Chrome Canary for Android, but it opens up amazing possibilities. Imagine real-time translation, assistive technologies for parsing image content, or even grabbing URLs from slides at conferences. I've built a demo where the API detects text, draws a box around it, and reads it aloud when clicked. Check out the code and demo to experiment yourself. I can't wait to see what you build with this!

Read More

Face detection using Shape Detection API

Paul Kinlan

I'm excited about the new experimental Shape Detection API in Chrome Canary! It provides a simple JavaScript API for face and barcode detection, leveraging underlying hardware for performance. This opens up new possibilities for web apps, from faster face detection and profile picture cropping to real-time tagging and optimized facial recognition. While currently only available in Chrome for Android (desktop support coming soon), I've shared a demo on JSBin. I also discuss strategies for progressive enhancement to ensure broader compatibility, including server-side detection, client-side JavaScript libraries, and the potential of Web Assembly. This API has the potential to revolutionize object detection performance on the web, and I'm particularly keen to see its impact on barcode scanning apps like my own QR Snapper.

Read More

Image Filter Library

Paul Kinlan

I've previously mentioned the .NET Image Filter Library, and I highly recommend it to anyone interested in learning about programmatic image manipulation. The library is well-documented in an easy-to-follow CodeProject article by Andrew Krillov. You can find it here: Image Processing Lab and Motion Detection. I even created a fisheye filter for this API, which you can find here: Fisheye Example

Read More

I did it.... Fish Eye... Call Me Kinlan The Chuffed!!!

Paul Kinlan

I successfully implemented a fish eye effect! I peeked at Jason Waltman's code for inspiration and adapted it to C# using the Tiger Image Processing Library. Now I even understand polar coordinates better. It involves converting Cartesian (x,y) coordinates to angles and distances from the center of a circle. The effect itself figures out which pixels need distorting and then calculates their new positions.

Read More

Image Processing: Part 1

Paul Kinlan

In this first part of my image processing series, I'm sharing how I used the Yahoo Search API to find images and load them into a C# application. I was excited to discover how straightforward it is to query for images and then seamlessly integrate the results into my project. The process involves constructing a REST query with search parameters, sending the request to Yahoo, receiving the XML response, and deserializing it into a custom data type. Then, I iterate through each image result in the response, create another query to download the image, and finally, convert the downloaded stream into a Bitmap and load it into an ImageList. Stay tuned for more in this series!

Read More

Image Processing: Part 2

Paul Kinlan

In this second part of my series on image processing, I'm exploring the Tiger Imaging Library for C#, a cool resource with complete source code and various image manipulation filters. I'm considering expanding its capabilities by creating new filters like the fish eye effect described by Jason Waltman. I'm also planning further research and experimentation with Tiger Imaging.

Read More