luismabenitez's avatar

ImageMagick, Intervention and Heic files

Trying to convert an image from .heic to .jpg on Laravel Forge and keep getting this error:

Unable to decode input

This is the method i have:

public function avatarUpload(Request $request)
{
    $file = $request->file('avatar');

    if (!$file) {
        return response()->json(['error' => 'No file uploaded'], 400);
    }

    $privateTempPath = storage_path('app/private/temp');
    $publicImagePath = storage_path('app/public/images/content');
    $uuid = Str::uuid();
    $extension = strtolower($file->getClientOriginalExtension());
    $tempFileName = $uuid . '.' . $extension;
    $finalFileName = $uuid . ($extension === 'heic' ? '.jpg' : '.' . $extension);
    $tempFilePath = $privateTempPath . '/' . $tempFileName;
    $finalFilePath = $publicImagePath . '/' . $finalFileName;

    foreach ([$privateTempPath, $publicImagePath] as $path) {
        if (!file_exists($path)) {
            mkdir($path, 0755, true);
        }
    }

    $file->move($privateTempPath, $tempFileName);

    try {
        if ($extension === 'heic') {
            $manager = new ImageManager(new Driver());
            $image = $manager->read($tempFilePath);
            $image->toJpeg(90)->save($finalFilePath);
        } else {
            copy($tempFilePath, $finalFilePath);
        }

        OptimizerChainFactory::create()->optimize($finalFilePath);

        return response()->json(['location' => url('storage/images/content/' . $finalFileName)], 200);
    } catch (\Exception $e) {
        Log::error('Error processing image: ' . $e->getMessage());
        return response()->json(['error' => 'Failed to process image'], 500);
    }
}

Running on PHP 8.3, and technically the libs are running right:

imagick module enabled

imagick module version 3.7.0

imagick classes Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel

Imagick compiled with ImageMagick version ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org

Imagick using ImageMagick library version ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org

ImageMagick copyright (C) 1999-2021 ImageMagick Studio LLC

ImageMagick release date 2021-01-25

ImageMagick number of supported formats: 247

ImageMagick supported formats 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, AVI, AVIF, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FILE, FITS, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, H, HALD, HDR, HEIC, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIDEO, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV

0 likes
0 replies

Please or to participate in this conversation.