Thanks to visit codestin.com
Credit goes to github.com

Skip to content

aMathyzinn/ImgC

Repository files navigation

IMGConvert Logo

Banner

typing


Transforme suas imagens com elegância e precisão. Converta, redimensione e otimize diretamente no navegador com uma UI refinada e responsiva, processamento 100% local e foco total em performance e privacidade.

🚀 Live Demo · Instalação · Recursos · Roadmap · Contribuir


📈 Métricas do Repositório

Star History Chart


✨ Características Principais

🚀 Conversão Inteligente

  • Formatos: JPG, PNG, WebP, BMP, AVIF
  • Lote: processe várias imagens de uma vez
  • Qualidade: controle fino (JPEG)
  • Privacidade: 100% local, sem upload

🎯 Redimensionamento Avançado

  • Modos: fit (encaixar) e fill (preencher)
  • Aspect Ratio: manter/alterar proporções
  • Dimensões custom + preview em tempo real

🎨 Interface Moderna

  • Design responsivo (mobile‑first)
  • Tema claro/escuro com auto‑detecção
  • Drag & Drop, toasts, barra de progresso
  • Painéis redimensionáveis e UI coesa (Radix UI)

🧩 Funcionalidades Pro

  • Context API com reducer para estado global
  • Validação de arquivos (tipo/tamanho)
  • Histórico de conversões
  • Exportação em lote

🛠️ Tecnologias

Frontend: Next.js 14 (App Router) · React 18 · TypeScript · Tailwind CSS · Radix UI

UX & utilitários: Tailwind CSS Animate · Lucide · Sonner · React Hook Form · Zod · React Resizable Panels · next-themes · date-fns · Recharts


🖼️ Preview Rápido

Screenshot 1


🚀 Como Usar

  1. Upload: arraste e solte ou selecione arquivos
  2. Configuração: escolha formato, redimensionamento e qualidade
  3. Processamento: clique em Converter e acompanhe o progresso
  4. Download: baixe individualmente ou em lote

📦 Instalação

Pré-requisitos

  • Node.js 18+
  • npm, yarn ou pnpm
git clone https://github.com/aMathyzinn/ImgC.git
cd ImgC
npm i
npm run dev
# abra http://localhost:3000

🏗️ Estrutura do Projeto

conversor/
├── app/                    # App Router do Next.js
│   ├── globals.css         # Estilos globais
│   ├── layout.tsx          # Layout principal
│   └── page.tsx            # Página inicial
├── components/             # Componentes React
│   ├── actions/            # Ações globais
│   ├── feedback/           # Notificações e progresso
│   ├── files/              # Gerenciamento de arquivos
│   ├── layout/             # Componentes de layout
│   ├── theme-provider.tsx  # Provedor de tema
│   ├── ui/                 # Componentes de UI
│   └── upload/             # Área de upload
├── contexts/               # Contextos React
│   └── ImageConverterContext.tsx
├── hooks/                  # Hooks customizados
├── lib/                    # Utilitários
├── utils/                  # Funções utilitárias
│   ├── imageUtils.ts       # Conversão de imagens
│   └── resizeUtils.ts      # Redimensionamento
└── public/                 # Arquivos estáticos

🔧 Scripts

{
  "dev": "next dev",
  "build": "next build",
  "start": "next start",
  "lint": "next lint"
}

🌟 Destaques de Código

Conversão Inteligente

export type ImageFormat = "jpeg" | "png" | "webp" | "bmp" | "avif";
const quality = targetFormat === "jpeg" ? 0.9 : undefined;

Redimensionamento

export type ResizeMode = "fit" | "fill";
interface ResizeSettings {
  width?: number;
  height?: number;
  maintainAspectRatio: boolean;
  mode: ResizeMode;
  enabled: boolean;
}

Estado Global

const [state, dispatch] = useReducer(reducer, initialState);

⚙️ Configurações & Personalização

  • Tema claro/escuro automático
  • Cores ajustáveis via Tailwind
  • Componentes desacoplados e reutilizáveis

📱 Responsividade

  • Desktop: todos os recursos
  • Tablet: layout otimizado
  • Mobile: experiência fluida e gestos touch

🔒 Segurança & Privacidade

  • Processamento local (Web APIs)
  • Sem upload para servidores externos
  • Revogação automática de URLs de objeto

🗺️ Roadmap

0.8

  • TIFF e GIF
  • Filtros e efeitos
  • Compressão inteligente
  • Histórico refinado

0.9

  • API REST para lote
  • Integrações com nuvem
  • Plugins para editores
  • Metadados EXIF

1.0

  • Editor embutido
  • Vídeo básico
  • Colaboração em tempo real
  • IA para otimização

❓ FAQ

Imagens saem do meu dispositivo? Não. Todo o processamento é feito no navegador.

Funciona offline? As conversões rodam localmente; o app pode ser adaptado para PWA.

Qualidade cai ao converter? Para JPEG você controla a qualidade; formatos como PNG/WebP seguem parâmetros ideais.


🤝 Contribuindo

  1. Faça fork
  2. Crie uma branch: git checkout -b feature/nome
  3. Commit: git commit -m "feat: ..."
  4. Push: git push origin feature/nome
  5. Abra um PR

Siga padrões de código, adicione testes quando possível e mantenha a documentação atualizada.


📄 Licença

Licenciado sob MIT — veja LICENSE.


💬 Suporte

Feito com ❤️ e ☕ — se este projeto te ajudou, deixe uma ⭐

footer