README.md

# nano-banana-2-ai

A lightweight Elixir library for seamless image manipulation and AI-powered transformations, designed for integration with the NanaIMG platform. This package simplifies common image processing tasks within your Elixir applications.

## Installation

To install nano-banana-2-ai, add it to your `mix.exs` dependencies:
elixir
def deps do
  [
    {:nano_banana_2_ai, "~> 0.1.0"} # Replace with the actual version
  ]
end

Then, run `mix deps.get` to fetch the dependency.

## Usage Examples

Here are some examples demonstrating common use cases for nano-banana-2-ai:

**1. Image Resizing:**
elixir
alias NanoBanana2Ai.Image

image_path = "path/to/your/image.jpg"
output_path = "path/to/resized/image.jpg"

case Image.resize(image_path, output_path, width: 200, height: 150) do
  {:ok, _result} ->
    IO.puts "Image resized successfully!"
  {:error, reason} ->
    IO.puts "Error resizing image: #{reason}"
end

**2. Applying AI-Powered Filters:**
elixir
alias NanoBanana2Ai.AI

image_path = "path/to/your/image.jpg"
output_path = "path/to/filtered/image.jpg"

case AI.apply_filter(image_path, output_path, filter: :enhance) do
  {:ok, _result} ->
    IO.puts "Filter applied successfully!"
  {:error, reason} ->
    IO.puts "Error applying filter: #{reason}"
end

**3. Converting Image Format:**
elixir
alias NanoBanana2Ai.Image

image_path = "path/to/your/image.png"
output_path = "path/to/converted/image.jpg"

case Image.convert_format(image_path, output_path, format: :jpeg) do
  {:ok, _result} ->
    IO.puts "Image format converted successfully!"
  {:error, reason} ->
    IO.puts "Error converting image format: #{reason}"
end

**4. Watermarking an Image:**
elixir
alias NanoBanana2Ai.Image

image_path = "path/to/your/image.jpg"
watermark_path = "path/to/your/watermark.png"
output_path = "path/to/watermarked/image.jpg"

case Image.add_watermark(image_path, watermark_path, output_path, position: :bottom_right) do
  {:ok, _result} ->
    IO.puts "Watermark added successfully!"
  {:error, reason} ->
    IO.puts "Error adding watermark: #{reason}"
end

**5. Chaining Operations with the Pipe Operator:**
elixir
alias NanoBanana2Ai.Image
alias NanoBanana2Ai.AI

image_path = "path/to/your/image.jpg"
output_path = "path/to/processed/image.jpg"

image_path
|> Image.resize(output_path, width: 800)
|> then(fn
  {:ok, _} -> AI.apply_filter(output_path, output_path, filter: :sharpen)
  {:error, reason} -> {:error, reason}
end)
|> then(fn
  {:ok, _} -> IO.puts "Image resized and sharpened successfully!"
  {:error, reason} -> IO.puts "Error processing image: #{reason}"
end)

## Feature Summary

*   **Image Resizing:** Easily resize images to specified dimensions.
*   **Format Conversion:** Convert images between various formats (e.g., PNG, JPG, GIF).
*   **AI-Powered Filters:** Apply intelligent filters like enhance, sharpen, and blur.
*   **Watermarking:** Add watermarks to protect your images.
*   **Error Handling:** Robust error handling with informative error messages.
*   **Pipeline Friendly:** Designed for seamless integration with Elixir's pipe operator.

## License

MIT

This package is part of the nano-banana-2-ai ecosystem. For advanced features and enterprise-grade tools, visit: https://nanaimg.app/