article

Rotating an array using C#

I've recently been working on a number of small test programs for the different sections which make up a game I'm planning on writing. One of these test systems involved a series of polyominoes which I needed to rotate. Internally, the data for these shapes are stored as a simple boolean array, which I access as though it were two dimensions. This article and corresponding source code download describe how to rotate 2D rectangular arrays (or 1D arrays that masquerade as 2D) in 90° intervals clockwise or anti-clockwise.

avatar
Richard Moss
article

Writing Adobe Swatch Exchange (ase) files using C#

The second in a two part series showing how to write Adobe Stack Exchange (ase) files using C#

avatar
Richard Moss
article

Reading Adobe Swatch Exchange (ase) files using C#

The first of a two part series which describes how to load and save Adobe Swatch Exchange (ase) files using C#. This first article describes the file format, and provides a full example project that will read RGB based swatch files.

avatar
Richard Moss
article

Working around "Cannot use JSX unless the '--jsx' flag is provided." using the TypeScript 1.6 beta

This post details how to work around the "Build: Cannot use JSX unless the '--jsx' flag is provided." error you may receive when using the new TypeScript 1.6 Beta with Visual Studio 2015 to generate ReactJS components.

avatar
Richard Moss
article

Targeting multiple versions of the .NET Framework from the same project

The new exception management library I've been working on was originally targeted for .NET 4.6, changing to .NET 4.5.2 when I found that Azure websites don't support 4.6 yet. Regardless of 4.5 or 4.6, this meant trouble when I tried to integrate it with WebCopy - this product uses a mix of 3.5 and 4.0 targeted assemblies, meaning it couldn't actually reference the new library due the higher framework version. Rather than creating several different project files with the same source but different configuration settings, I decided that I would modify the library to target multiple framework versions from the same source project, and this article describes how I did this.

avatar
Richard Moss
article

Working around System.ArgumentException: Only TrueType fonts are supported. This is not a TrueType font

We recently created a a drop in replacement for the System.Windows.Forms.FontDialog component to avoid crashes when a user tries to select an invalid TrueType font.

avatar
Richard Moss
article

Sending SMS messages with Twilio

Last week I attended the NEBytes technology user group for the first time. One of the presentations was for Twilio, an easy to use platform for creating SMS and VoIP applications. This short article demonstrates (with a simple caveat) just how easy it is to use this platform for sending SMS messages - a perfect way of adding two factor authentication to your services, or sending alert notifications, or any number of use cases.

avatar
Richard Moss
article

A brief look at code analysis with NDepend

In this article, I'm going to take a quick tour of some of the static code analysis features of NDepend, a Visual Studio extension (and stand alone tool) for gathering metrics, detecting problems, and providing reams of information about your .NET projects.

avatar
Richard Moss
article

Even more algorithms for dithering images using C#

Although I should really be working on adding the dithering algorithms into Gif Animator, I thought it would be useful to expand the repertoire of algorithms available for use with such tools. This article briefly mentions the expanded error diffusion algorithms that are now included, and in slightly more detail covers random dithering as well.

avatar
Richard Moss
article

Dithering an image using the Burkes algorithm in C#

Another article in my C# image dithering mini-series, this time covering the Burkes error diffusion algorithm.

avatar
Richard Moss
article

Dithering an image using the Floyd‑Steinberg algorithm in C#

In my previous introductory post, I briefly described the concept of dithering an image. In this article, I will describe how to dither an image in C# using the Floyd–Steinberg algorithm.

avatar
Richard Moss
article

An introduction to dithering images

When you reduce the number of colours in an image, it's often hard to get a 1:1 match, and so typically you can expect to see banding in an image - areas of unbroken solid colours where once multiple similar colours were present. Such banding can often ruin the look of the image, however by using dithering algorithms you can reduce such banding and greatly improve the appearance of the reduced image. This article briefly discusses dithering as a prelude to further articles with actual dithering implementations.

avatar
Richard Moss