Encode data into an VeeFriend images. Useful for connection with VeeFriends.
$ dotnet add package VeeFriends.ImageEncoder# VeeFriends Avatar Data Encoder/Decoder
> This package has nothing to do with Gary Vaynerchuk.

## Overview
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.
## Installation
To install the SDK, add it to your project using NuGet:
```bash
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.AddOpenSeaImageClient();
var app = builder.Build();
// Configure the HTTP request pipeline.
app.UseAuthorization();
app.MapControllers();
app.Run();
ValueTask<Stream> EncodeImage(string urlOfImageToEncode, string codeToEncode, CancellationToken cancellationToken)ValueTask EncodeImage(string urlOfImageToEncode, string codeToEncode, IAssetUploader assetUploader, CancellationToken cancellationToken)ValueTask<Stream> EncodeImage(Stream imageStream, string codeToEncode, CancellationToken cancellationToken)ValueTask EncodeImage(Stream imageStream, string codeToEncode, IAssetUploader assetUploader, CancellationToken cancellationToken)ValueTask<Stream> EncodeImage(IAssetRetriever assetRetriever, string codeToEncode, CancellationToken cancellationToken)ValueTask EncodeImage(IAssetRetriever assetRetriever, string codeToEncode, IAssetUploader assetUploader, CancellationToken cancellationToken)ValueTask<Stream> EncodeOpenSeaAvatar(string walletAddress, string codeToEncode, CancellationToken cancellationToken)ValueTask EncodeOpenSeaAvatar(string walletAddress, string codeToEncode, IAssetUploader assetUploader, CancellationToken cancellationToken)ValueTask<string> DecodeImage(string urlOfImageToDecode, CancellationToken cancellationToken)ValueTask<string> DecodeImage(Stream imageStream, CancellationToken cancellationToken)ValueTask<string> DecodeImage(IAssetRetriever assetRetriever, CancellationToken cancellationToken)ValueTask<string> DecodeOpenSeaAvatar(string walletAddress, CancellationToken cancellationToken)ValueTask<Stream> GenerateAvatar(string characterImageUrl, CancellationToken cancellationToken)ValueTask GenerateAvatar(string characterImageUrl, IAssetUploader assetUploader, CancellationToken cancellationToken)ValueTask<Stream> GenerateAvatar(IAssetRetriever assetRetriever, CancellationToken cancellationToken)ValueTask GenerateAvatar(IAssetRetriever assetRetriever, IAssetUploader assetUploader, CancellationToken cancellationToken)ValueTask<Stream> GenerateAvatar(string characterImageUrl, string codeToEncode, CancellationToken cancellationToken)ValueTask GenerateAvatar(string characterImageUrl, string codeToEncode, 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
}
}