Bulk Image Converter Pro is a premium, privacy-first image conversion platform. Users can convert, resize, and process images entirely client-side or through a powerful server-side engine.
| Component | Minimum | Recommended |
|---|---|---|
| PHP | 8.0 | 8.2+ |
| MySQL / MariaDB | 5.7 / 10.3 | 8.0 / 10.11 |
| Web Server | Apache 2.4 | Apache 2.4 + nginx reverse proxy |
| PHP Extensions | GD, PDO MySQL, ZipArchive | GD + Imagick, PDO MySQL, ZipArchive, mbstring, cURL |
| Disk Space | 100 MB | 500 MB |
| Memory (PHP) | 128 MB | 256 MB |
| HTTPS | Not required | Strongly recommended |
public_html).database.sql into your database via phpMyAdmin or CLI:
mysql -u your_user -p your_database < database.sql
chmod 755 temp/ logs/ uploads/
.env.example to .env and fill in your database credentials..env to version control. It contains sensitive database and SMTP credentials.
If your hosting doesn't support .env files, edit api/config.php directly:
define('DB_HOST', 'localhost');
define('DB_NAME', 'your_database_name');
define('DB_USER', 'your_database_user');
define('DB_PASS', 'your_database_password');
The app uses Composer for PHPMailer and Parsedown. Run this from the project root:
composer install --no-dev
Composer is optional — the app falls back gracefully if vendor/ is not present, though email sending and blog features will be limited.
| Variable | Default | Description |
|---|---|---|
APP_ENV | production | production, development, maintenance |
DB_HOST | localhost | Database server hostname |
DB_NAME | image_convert_pro | Database name |
DB_USER | root | Database username |
DB_PASS | root | Database password |
GUEST_CREDITS_SECRET | fallback_... | Random string for guest credit signing |
TRUST_PROXY_HEADERS | 0 | Set to 1 behind Cloudflare/load balancer |
TRUSTED_PROXY_IPS | | Comma-separated IPs of trusted proxies |
After logging in as admin, visit Admin → General Settings to configure:
The included .htaccess enables clean URLs for format pairs (e.g., /png-to-webp), blog posts, and the sitemap. Ensure mod_rewrite is enabled on your server.
| Table | Purpose |
|---|---|
users | Registered users, passwords, credit balances, subscription status |
admins | Admin login credentials |
packages | Credit packages (Starter, Pro, Enterprise) with pricing |
payment_methods | Available payment options (Bank Transfer, Crypto, etc.) |
transactions | Payment receipt tracking (pending/approved/declined) |
support_tickets | User-submitted support requests |
ticket_replies | Admin replies to support tickets |
site_settings | Key-value store for all configurable settings |
activity_logs | Audit trail for user and admin actions |
visitor_activity | Anonymized visitor tracking for analytics |
page_views | Page view statistics |
advertisements | Built-in promotional ads and cross-promotions |
support_resources | Help center articles and links |
The database.sql includes seed data with sample packages, payment methods, ads, and a default admin account (admin / admin123). Change this password immediately after first login.
/admin/login.phpadminadmin123
php tools/create_admin.php --username=admin --password="your-strong-password"
| Section | Description |
|---|---|
| Dashboard | Analytics overview: signups, payments, conversions, errors, recent activity |
| Users | Manage registered users, view credits, approve/decline, search |
| Payments | Review payment receipts, approve or decline with reason |
| Finance | Revenue analytics, transaction history, receipt viewer |
| Packages | Create/edit credit packages with pricing and limits |
| Settings | Site name, email SMTP, credit costs, favicon, security code |
| Ads | Manage in-app advertisements and cross-promotions |
| Support | View, reply, and close user support tickets |
| Notifications | System activity log with read/unread tracking |
| Performance | Conversion success rates, error tracking |
HTML email templates are located in api/templates/email/. You can customise these freely:
welcome.html — Sent after registrationverify_email.html — Email verification linkforgot_password.html — Password reset requestpassword_reset_success.html — Password changed confirmationreceipt_received.html — Payment proof receivedpending_invoice.html — Invoice/reminderplan_activated.html — Plan/subscription activatedpayment_declined.html — Payment declined notificationTemplates use {{variable}} placeholders which are replaced dynamically.
Each file conversion costs 1 credit. Advanced features (PDF, EXIF strip) cost additional credits as configured in Admin Settings. Users start with a daily guest limit and can purchase packages to increase their balance.
The app supports monthly subscription cycles. When a user's plan expires, their credits revert to the default package. You can configure:
Six free tools are included to drive engagement and SEO traffic:
| Tool | URL | Description |
|---|---|---|
| EXIF Viewer | /tools/exif-viewer.php | Upload an image to view all EXIF, GPS, IPTC, and XMP metadata |
| Image Inspector | /tools/image-inspector.php | Detailed image analysis: dimensions, color depth, compression info |
| Color Palette | /tools/color-palette.php | Extract dominant colors from any image with hex codes |
| Size Comparator | /tools/size-comparator.php | Compare file sizes across formats and quality settings |
| Image Cropper | /tools/image-cropper.php | Client-side image cropping with aspect ratio presets (1:1, 16:9, etc.) |
| Google Operator Search | /tools/google-operator-search.php | Build advanced Google search queries with operators and presets |
All tools are rate-limited for guest users (configurable in Admin Settings). Signed-in users get unlimited access.
/sitemap.xml — includes all pages, format-pair landing pages, and blog posts/png-to-webp) is a unique indexable page.htaccess, canonical tags, Open Graph metaCreate a markdown file in blog/posts/ with this naming convention:
YYYY-MM-DD-your-post-slug.md
Blog posts automatically appear on the blog index and are added to the sitemap.
CSS is organised into three files:
css/tailwind.input.css — Tailwind source (can be recompiled)css/tailwind.css — Compiled Tailwind outputcss/styles.css — Custom styles organised by componentjs/converter-api.js — Backend API client and upload logicjs/converter.js — Main UI wiring, preview, and download handlersjs/toast.js — Toast notification utilitylayouts/public.php — Public-facing pages (home, about, pricing)layouts/dashboard.php — Authenticated user dashboard shelllayouts/auth.php — Login/register pageslayouts/auth_split.php — Split-screen auth layoutcomponents/header.php — Main site header with Free Tools dropdowncomponents/sidebar.php — Dashboard sidebar navigationcomponents/footer.php — Site footer with linksEdit config/format-pairs.php to add new conversion pairs. Each entry automatically creates a landing page and sitemap entry.
To rebrand the application:
APP_NAME and APP_AUTHOR in api/config.phpsite_name in Admin Settingsassets/icons/api/templates/email/components/footer.php| Issue | Solution |
|---|---|
| Uploads fail | Increase upload_max_filesize and post_max_size in PHP. The .htaccess sets 100M by default. |
| ZIP download fails | Ensure the ZipArchive PHP extension is installed and enabled. |
| Conversions fail | Ensure GD or Imagick is installed. Check PHP error logs for details. |
| Blank page / 500 error | Enable APP_ENV=development to see PHP errors. Check that all file paths are correct. |
| 404 on format pages | Ensure mod_rewrite is enabled and .htaccess is present in the web root. |
| Database connection error | Verify DB_HOST, DB_NAME, DB_USER, DB_PASS in your .env file. Check that the MySQL server is running. |
| Emails not sending | Verify SMTP settings in Admin → Settings. Check that PHPMailer is installed (composer install). |
| "Daily limit reached" | Increase tool_daily_limit_guest in Admin Settings or have the user create an account. |
| Admin security screen loops | Disable admin security in Admin Settings, or set admin_security_enabled to 0 in the database. |
| Images not showing after deploy | Flush any CDN or server cache. Verify that temp/ and uploads/ directories are writable. |
500 on vendor/autoload.php | Run composer install --no-dev or create an empty vendor/ directory if not using Composer. |
APP_ENV=development in your .env to display PHP errors and enable verbose logging. Never use this in production.
.env, custom templates, uploaded files)..env safe).Support is provided exclusively through Envato's item support policy:
Before contacting support:
APP_ENV, PHP version, and web server detailsBulk Image Converter Pro v2.0.2 — Documentation © = date('Y') ?> DemoHomeX