Encode data into an VeeFriend images. Useful for connection with VeeFriends.
$ dotnet add package VeeFriends.ImageEncoderThis package has nothing to do with Gary Vaynerchuk.
VeeFriends.ImageEncoder is a C# SDK designed for encoding and decoding hidden data within images. It supports various use cases including encoding data into images from URLs, streams, or OpenSea avatars, and decoding hidden data from these images.
To install the SDK, add it to your project using NuGet:
dotnet add package VeeFriends.ImageEncoder
To use VeeFriends.ImageEncoder with dependency injection, configure the services in your Program.cs:
using Microsoft.Extensions.DependencyInjection;
using VeeFriends.ImageEncoder;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddVeeFriendsImageEncoder(new()
{
OpenSeaApiKey = "..."
});
var app = builder.Build();
// Configure the HTTP request pipeline.
app.UseAuthorization();
app.MapControllers();
app.Run();
The ImageEncoder class provides various methods for encoding and decoding images. Below is a categorized summary of its methods:
Encode from URL
ValueTask<Stream> EncodeImage(string urlOfImageToEncode, string codeToEncode, CancellationToken cancellationToken)ValueTask EncodeImage(string urlOfImageToEncode, string codeToEncode, IAssetUploader assetUploader, CancellationToken cancellationToken)Encode from Stream
ValueTask<Stream> EncodeImage(Stream imageStream, string codeToEncode, CancellationToken cancellationToken)ValueTask EncodeImage(Stream imageStream, string codeToEncode, IAssetUploader assetUploader, CancellationToken cancellationToken)Encode from AssetRetriever
ValueTask<Stream> EncodeImage(IAssetRetriever assetRetriever, string codeToEncode, CancellationToken cancellationToken)ValueTask EncodeImage(IAssetRetriever assetRetriever, string codeToEncode, IAssetUploader assetUploader, CancellationToken cancellationToken)Encode OpenSea Avatar
ValueTask<Stream> EncodeOpenSeaAvatar(string walletAddress, string codeToEncode, CancellationToken cancellationToken)ValueTask EncodeOpenSeaAvatar(string walletAddress, string codeToEncode, IAssetUploader assetUploader, CancellationToken cancellationToken)Decode from URL
ValueTask<string> DecodeImage(string urlOfImageToDecode, CancellationToken cancellationToken)Decode from Stream
ValueTask<string> DecodeImage(Stream imageStream, CancellationToken cancellationToken)Decode from AssetRetriever
ValueTask<string> DecodeImage(IAssetRetriever assetRetriever, CancellationToken cancellationToken)Decode OpenSea Avatar
ValueTask<string> DecodeOpenSeaAvatar(string walletAddress, CancellationToken cancellationToken)Generate Avatar from URL
ValueTask<Stream> GenerateAvatar(string characterImageUrl, CancellationToken cancellationToken)ValueTask GenerateAvatar(string characterImageUrl, IAssetUploader assetUploader, CancellationToken cancellationToken)ValueTask<Stream> GenerateAvatar(string characterImageUrl, string codeToEncode, CancellationToken cancellationToken)ValueTask GenerateAvatar(string characterImageUrl, string codeToEncode, IAssetUploader assetUploader, CancellationToken cancellationToken)Generate Avatar from AssetRetriever
ValueTask<Stream> GenerateAvatar(IAssetRetriever assetRetriever, CancellationToken cancellationToken)ValueTask GenerateAvatar(IAssetRetriever assetRetriever, IAssetUploader assetUploader, CancellationToken cancellationToken)ValueTask<Stream> GenerateAvatar(IAssetRetriever assetRetriever, string codeToEncode, CancellationToken cancellationToken)ValueTask GenerateAvatar(IAssetRetriever assetRetriever, string codeToEncode, IAssetUploader assetUploader, CancellationToken cancellationToken)using VeeFriends.ImageEncoder;
using System.Threading;
using System.IO;
using System.Threading.Tasks;
public class Example
{
private readonly ImageEncoder _imageEncoder;
public Example(ImageEncoder imageEncoder)
{
_imageEncoder = imageEncoder;
}
public async Task EncodeImageFromUrl()
{
string imageUrl = "https://example.com/image.jpg";
string codeToEncode = "SecretCode";
CancellationToken cancellationToken = new CancellationToken();
Stream encodedImage = await _imageEncoder.EncodeImage(imageUrl, codeToEncode, cancellationToken);
// Save or use the encodedImage stream
}
}using VeeFriends.ImageEncoder;
using System.Threading;
using System.Threading.Tasks;
public class Example
{
private readonly ImageEncoder _imageEncoder;
public Example(ImageEncoder imageEncoder)
{
_imageEncoder = imageEncoder;
}
public async Task DecodeImageFromUrl()
{
string imageUrl = "https://example.com/encoded-image.jpg";
CancellationToken cancellationToken = new CancellationToken();
string decodedCode = await _imageEncoder.DecodeImage(imageUrl, cancellationToken);
// Use the decodedCode
}
}using VeeFriends.ImageEncoder;
using System.Threading;
using System.IO;
using System.Threading.Tasks;
public class Example
{
private readonly ImageEncoder _imageEncoder;
public Example(ImageEncoder imageEncoder)
{
_imageEncoder = imageEncoder;
}
public async Task GenerateAndEncodeAvatar()
{
string characterImageUrl = "https://example.com/character-image.jpg";
string codeToEncode = "SecretCode";
CancellationToken cancellationToken = new CancellationToken();
Stream encodedAvatar = await _imageEncoder.GenerateAvatar(characterImageUrl, codeToEncode, cancellationToken);
// Save or use the encodedAvatar stream
}
}This project is licensed under the MIT License.
This SDK uses the ImageSharp library, which is licensed by Six Labors under the terms outlined in their LICENSE.
Please review the full license for detailed terms and conditions.