DEV Community

Sh Raj
Sh Raj

Posted on • Edited on

🌟 Introducing Universal Image Component: The Ultimate React/NextJS Image Solution! πŸ“Έ

🌟 Introducing Universal Image Component: The Ultimate React/NextJS Image Solution! πŸ“Έ

Are you looking for a flexible solution to handle images in your React projects? Universal Image Component is here to simplify your image management, offering a range of modes to suit your needs. From Base64 conversion to CDN optimization, and more, this library is designed to make working with images effortless.

GitHub logo SH20RAJ / universal-image-component

universal-img-component is a versatile React component that simplifies handling images in various modes, including Base64, CDN, text-based images, and Next.js optimization. Perfect for any project needing dynamic image handling!

Universal Image Component πŸ“Έ

universal-img-component is a versatile React component that simplifies handling images in various modes, including Base64, CDN, text-based images, and Next.js optimization. Perfect for any project needing dynamic image handling!

npm Visitors GitHub issues GitHub discussions GitHub stars GitHub forks GitHub license

Features ✨

  • Normal Mode: Display images using standard URLs.
  • Cloudinary Mode (Recommended): Use Cloudinary for image transformations and optimizations.
  • Base64 Mode: Convert images to Base64 format.
  • CDN Mode: Optimize images using a CDN service.
  • Text Mode: Create text-based images with Statically’s Open Graph service.
  • TextBase Mode: Convert text-based image URLs to Base64.
  • Next Mode: Use Next.js Image component for optimization (in a Next.js environment).

Installation πŸš€

To get started, install the package via npm or yarn:

npm install universal-img-component
# or
yarn add universal-img-component
Enter fullscreen mode Exit fullscreen mode

Usage πŸ“š

Importing the Component

Import the Img component:

import Img from 'universal-img-component';
Enter fullscreen mode Exit fullscreen mode

Normal Mode πŸ–ΌοΈ

Displays an image using the standard URL:

<Img src
…
Enter fullscreen mode Exit fullscreen mode

🎯 Key Modes Explained

  1. Base64 Conversion πŸ”„ Convert images to Base64 format directly in your application. This is useful for embedding images inline or when you need to ensure that images are included with your HTML or CSS.

Sample Code:

   import Img from 'universal-img-component';

   function App() {
     return (
       <div>
         <h2>Base64 Mode</h2>
         <Img 
           src="https://via.placeholder.com/150" 
           alt="placeholder" 
           mode="base64" 
           width="300px" 
           height="300px" 
         />
       </div>
     );
   }
Enter fullscreen mode Exit fullscreen mode
  1. CDN Optimization 🌐 Leverage the ImageCDN service to optimize and deliver images efficiently. This mode is ideal for improving performance and scalability, especially when handling a large number of images.

Sample Code:

   import Img from 'universal-img-component';

   function App() {
     return (
       <div>
         <h2>CDN Mode</h2>
         <Img 
           src="https://via.placeholder.com/150" 
           alt="placeholder" 
           mode="cdn" 
           width="300px" 
           height="300px" 
         />
       </div>
     );
   }
Enter fullscreen mode Exit fullscreen mode
  1. Text-Based Images πŸ“ Create dynamic images with custom text using the Statically service. This mode allows you to generate images on-the-fly with personalized text and styling options.

Sample Code:

   import Img from 'universal-img-component';

   function App() {
     return (
       <div>
         <h2>Text-Based Image Mode</h2>
         <Img 
           text="Hello World" 
           mode="textbase" 
           fontsize="40px" 
           width="300px" 
           height="150px" 
         />
       </div>
     );
   }
Enter fullscreen mode Exit fullscreen mode
  1. Next.js Optimization πŸš€ For Next.js projects, this mode uses the built-in Image component from Next.js for optimized image loading and performance.

Sample Code:

   import Img from 'universal-img-component';

   function App() {
     return (
       <div>
         <h2>Next.js Mode</h2>
         <Img 
           src="https://via.placeholder.com/150" 
           alt="placeholder" 
           mode="next" 
           width="300px" 
           height="300px" 
         />
       </div>
     );
   }
Enter fullscreen mode Exit fullscreen mode
  1. Normal Mode (Default) 🌟 Displays the image using the standard img tag. This mode is used when no special processing is required.

Sample Code:

   import Img from 'universal-img-component';

   function App() {
     return (
       <div>
         <h2>Normal Mode</h2>
         <Img 
           src="https://via.placeholder.com/150" 
           alt="placeholder" 
           mode="normal" 
           width="300px" 
           height="300px" 
         />
       </div>
     );
   }
Enter fullscreen mode Exit fullscreen mode

πŸš€ How to Get Started

  1. Install the Package:
   npm install universal-img-component
Enter fullscreen mode Exit fullscreen mode

or

   yarn add universal-img-component
Enter fullscreen mode Exit fullscreen mode
  1. Use the Component:
    Import and use the Img component in your React project with the mode of your choice.

  2. Customize as Needed: Adjust props such as mode, format, fit, text, fontsize, and others to suit your project's requirements.

πŸ“ˆ Why Choose Universal Image Component?

  • Versatility: Handles various image modes and formats.
  • Simplicity: Easy to use with minimal configuration.
  • Performance: Optimizes image delivery and display.
  • Flexibility: Supports different projects, from standard React apps to Next.js applications.

🌟 Try It Out Today!

Upgrade your image handling with Universal Image Component and experience a new level of ease and efficiency. Check out our GitHub repository for more details, documentation, and to contribute!

Feel free to reach out to us at sh20raj@gmail.com for any questions or feedback. Happy coding! πŸš€

Top comments (0)