diff --git a/ImgBBApi.csproj b/ImgBBApi.csproj index cb04552..8c191b3 100644 --- a/ImgBBApi.csproj +++ b/ImgBBApi.csproj @@ -1,13 +1,13 @@  - net5.0;net6.0;net7.0;net8.0 + net5.0;net6.0;net7.0;net8.0;net10.0 disable Library ImgBBApi ImgBBApi Added package icon False - 1.0.3 + 1.0.4 $(AssemblyVersion) $(AssemblyVersion) iminet @@ -23,11 +23,12 @@ true false - - - - - + + + + + + diff --git a/README.md b/README.md index 3be3663..2c5173a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,122 @@ # ImgBBApi +A lightweight C# client library for uploading images to [ImgBB](https://imgbb.com/) from .NET applications. + +`ImgBBApi` accepts either local image file paths or Base64-encoded image data and returns the direct URLs generated by ImgBB. + +## Features + +- Upload one or more local image files +- Upload Base64-encoded image content +- Async API built on `HttpClient` +- Multi-targets .NET 5, .NET 6, .NET 7, and .NET 8 + +## Installation + +Install the package from NuGet: + +```bash +dotnet add package Iminetsoft.ImgBBApi +``` + +Or use the NuGet Package Manager Console: + +```powershell +Install-Package Iminetsoft.ImgBBApi +``` + +## Getting an ImgBB API key + +1. Sign in to [ImgBB](https://imgbb.com/). +2. Create an API key from the [ImgBB API key page](https://api.imgbb.com/). +3. Keep the key private—do not commit it to source control. + +For example, store it in an environment variable: + +```bash +export IMGBB_API_KEY="your-api-key" +``` + +## How to use + +### Upload local files + +```csharp +using System; +using System.Collections.Generic; +using Iminetsoft; + +var apiKey = Environment.GetEnvironmentVariable("IMGBB_API_KEY"); +var client = new ImgBBApi(apiKey); + +var imageUrls = await client.UploadImgbbAsync(new List +{ + @"C:\\images\\photo-1.png", + @"C:\\images\\photo-2.jpg" +}); + +foreach (var imageUrl in imageUrls) +{ + Console.WriteLine(imageUrl); +} +``` + +### Upload Base64 image data + +Pass a Base64-encoded image string instead of a file path: + +```csharp +using System; +using System.Collections.Generic; +using System.IO; +using Iminetsoft; + +var apiKey = Environment.GetEnvironmentVariable("IMGBB_API_KEY"); +var client = new ImgBBApi(apiKey); + +var base64Image = Convert.ToBase64String( + await File.ReadAllBytesAsync("photo.png")); + +var imageUrls = await client.UploadImgbbAsync(new List +{ + base64Image +}); + +Console.WriteLine(imageUrls[0]); +``` + +## API reference + +### `ImgBBApi(string apiKey)` + +Creates a client with the ImgBB API key used for all upload requests. + +### `Task> UploadImgbbAsync(List imagePaths)` + +Uploads each supplied value to ImgBB and returns a list of image URLs. + +Each item may be: + +- a path to an existing local image file; or +- a Base64-encoded image string. + +The returned list follows the successful upload order. If an upload fails, the current implementation suppresses the exception and may return an empty or partial list. + +## Requirements + +- .NET 5.0, 6.0, 7.0, or 8.0 +- A valid ImgBB API key +- Internet access to `https://api.imgbb.com` + +## Notes + +- ImgBB controls its own upload limits, retention, and content policies. Consult the [ImgBB API documentation](https://api.imgbb.com/) for the current terms and limits. +- Treat API keys and uploaded image URLs according to your application's security and privacy requirements. + ## Origin -This project is based on [qalibqurbanov's project](https://github.com/qalibqurbanov/Imager) + +This project is based on [qalibqurbanov/Imager](https://github.com/qalibqurbanov/Imager). + +## License + +No license is currently specified in this repository. Add a license file before distributing or reusing the project under explicit terms.