15,894,180 members
Sign in
Sign in
Email
Password
Forgot your password?
Sign in with
home
articles
Browse Topics
>
Latest Articles
Top Articles
Posting/Update Guidelines
Article Help Forum
Submit an article or tip
Import GitHub Project
Import your Blog
quick answers
Q&A
Ask a Question about this article
Ask a Question
View Unanswered Questions
View All Questions
View C# questions
View C++ questions
View Javascript questions
View Visual Basic questions
View Python questions
discussions
forums
CodeProject.AI Server
All Message Boards...
Application Lifecycle
>
Running a Business
Sales / Marketing
Collaboration / Beta Testing
Work Issues
Design and Architecture
Artificial Intelligence
ASP.NET
JavaScript
Internet of Things
C / C++ / MFC
>
ATL / WTL / STL
Managed C++/CLI
C#
Free Tools
Objective-C and Swift
Database
Hardware & Devices
>
System Admin
Hosting and Servers
Java
Linux Programming
Python
.NET (Core and Framework)
Android
iOS
Mobile
WPF
Visual Basic
Web Development
Site Bugs / Suggestions
Spam and Abuse Watch
features
features
Competitions
News
The Insider Newsletter
The Daily Build Newsletter
Newsletter archive
Surveys
CodeProject Stuff
community
lounge
Who's Who
Most Valuable Professionals
The Lounge
The CodeProject Blog
Where I Am: Member Photos
The Insider News
The Weird & The Wonderful
help
?
What is 'CodeProject'?
General FAQ
Ask a Question
Bugs and Suggestions
Article Help Forum
About Us
Search within:
Articles
Quick Answers
Messages
Articles / Programming Languages / C#
C#
color
dictionary
thumbnail
Image class which contains an array of unique colors with counts used to sort by color and find duplicates.
Brian L Hughes
18 Nov 2021
CPOL
4 min read
7.3K
4
Image class which contains an array of unique colors with counts used to sort by color and find duplicates.
We can use hashes to find exact duplicates of images but that's where it ends. I've written a class that uses a reduced image of a smaller size keeping the original width height ratio down to maximum of 128 pixels. The next step makes a dictionary of unique colors in the thumbnail and tallies the count of each color. A flat array of color information is extracted for speed. The array is used to in sort and equality routines. Exact duplicate checking is quite fast, if the original width, height, or the count of unique colors is different the extra step of comparing colors can be skipped. If an image is flipped left to right or top to bottom the color information is still the same. I did not discover a way to determine if two images were similar but not identical. I tried to compare color usage percentages to some degree but my results were sporadic. Sorting does work to a degree in the current build. Images are generally sorted dark to light and some are grouped by subject.
This is an old version of the
currently published
article.
Only logged in members can view this content
Please go to the C#
Table of Contents
to view the list of available articles in this section.
Go to top