Converting 2D arrays to 1D and accessing as either 2D or 1D
While working on a recent gaming project, I was originally using 2D arrays to store information relating to the different levels in the game. But when it came to loop through the contents of these...
View ArticleCreating an image viewer in C# Part 5: Selecting part of an image
A newer version of this code is now available.Part 4 of this series (by far the most popular article on cyotek.com) was supposed to be the end, but recently I was asked if was possible to select part...
View ArticleArcade explosion generator
Over the past few weeks I've been messing around creating a unique graphics for our Jewel Rush game. One of the things I was experimenting with was explosion animations. Although tools exist for...
View ArticleDisplaying the contents of a PDF file in an ASP.NET application using...
After receiving quite a few requests on making the PDF image conversion work in a web application, I wanted to see how hard it would be to do. Not hard at all as it turns out, I had a nice working...
View ArticleCreating a multi-paged container control with design time support
This article describes adding design time support for a TabControl-like component which renders the same way the Project Properties in Visual Studio 2012.This is the first time I've tried to make more...
View ArticleZooming into a fixed point on a ScrollableControl
If I'd built subtitle support into the CMS that powers this website, then surely the subtitle would have been "or how I fixed that annoying zoom bug in the ImageBox control". And with that digression...
View ArticleZooming to fit a region in a ScrollableControl
I suspect the titles of these last pair of articles are a touch misleading as they talk about extended zoom operations without actually describing a zoom process (as this is already part of other...
View ArticleImageBox update, version 1.1.0.0
A newer version of this code is now available.The ImageBox control has had quite a big update, you can download the source from the link below, or from our GitHub page.Listed below are the changes made...
View ArticleExtracting email addresses from Outlook
The cyotek.com receives an awful lot of spam and a lot of this is sent to email addresses that don't exist. However, as we currently have catch all's enabled, it means we receive it regardless. This is...
View ArticleAssembly Reference Scanner Sample
Due to an issue with our setup programs, certain files weren't getting updated if the version numbers hadn't changed. This led to crashes if you upgraded from one version to another. I wrote this tool...
View ArticleManually writing the byte order mark (BOM) for an encoding into a stream
I recently discovered a problem with our WebCopy and Cyotek Sitemap Creator products to do with "corruption" of plain text documents, where non-ANSI characters appeared incorrectly. It didn't take long...
View ArticleImageBox and TabList update's - virtual mode, pixel grid, bug fixes and more!
A newer version of this code is now available.Our last post before the new year and some new material is an update to the ImageBox (now at version 1.1.2.0) and TabList (at version 1.0.0.2) controls....
View ArticleCreating a custom ErrorProvider component for use with Windows Forms...
In recent code, I've been trying to avoid displaying validation errors as message boxes, but display something in-line. The .NET Framework provides an ErrorProvider component which does just this. One...
View ArticleDividing up a rectangle based on pairs of points using C#
Recently we released the first alpha of our latest product, Cyotek Slicr, a tool for slicing up an image. At the heart of this tool is a series of routines that take a given image and pairs of input...
View ArticleColorPicker Controls for Windows Forms
A newer version of this code is now available.Back at the start of the new millennium, I had a publishing agreement with another company to publish our components under their branding. The first of...
View ArticleColorPicker Controls Update 1.0.2.0
I've been pretty busy recently pushing out updates to WebCopy, a pending update to Spriter and working on a game project so blog posts have suffered a bit. While I work to correct that, we've just...
View ArticleCreating a custom TypeConverter part 1 - getting started
It is common practice to create a class that describes something, a person, a product - some entity or other. Your application may provide a sublime UI for editing these objects, or rely on something...
View ArticleCreating a custom TypeConverter part 2 - Instance descriptors, expandable...
In the first part of this article series, I described how to create a simple type converter for converting an object to and from a string. This follow up article expands upon that sample, to include...
View ArticleUsing alternate descriptions for enumeration members
The last two articles (here and here) described creating a custom type converter for converting units of measurement. However, what happens when you want to display or convert to/from alternative...
View ArticleImageBox 1.1.4.0 update
A newer version of this code is now available.Today we've released a new updated version of the ImageBox control, with a nice collection of enhancements and a few bug fixes.Full change log for this...
View Article