/// <summary> /// Save a bitmap as a webp file. (Requires the libwebp_x64.dll or libwebp_x86.dll) /// </summary> /// <param name="img"> The bitmap to encode. </param> /// <param name="Path"> The path to save the bitmap. </param> /// <param name="q"> The webp quality args. </param> /// <param name="collectGarbage"> A bool indicating if GC.Collect should be called after saving. </param> /// <returns> true if the bitmap was saved successfully, else false </returns> public static bool SaveWebp(Bitmap img, string path, WebPQuality q, bool collectGarbage = true) { if (!InternalSettings.WebP_Plugin_Exists || string.IsNullOrEmpty(path) || img == null) { return(false); } q = InternalSettings.WebpQuality_Default; try { Webp.Save(img, path, q); return(true); } catch (Exception e) { if (ShowExceptions) { e.ShowError(); } return(false); } finally { if (collectGarbage) { GC.Collect(); } } }
/// <summary> /// Saves an image. /// </summary> /// <param name="img"> The image to save. </param> /// <param name="path"> The path to save the image. </param> /// <param name="collectGarbage"> A bool indicating if GC.Collect should be called after saving. </param> /// <returns> true if the image was saved successfully, else false </returns> public static bool SaveImage(Image img, string path, bool collectGarbage = true) { if (img == null || string.IsNullOrEmpty(path)) { return(false); } PathHelper.CreateDirectoryFromFilePath(path); try { switch (GetImageFormatFromPath(path)) { default: case ImgFormat.png: PNG.Save(img, path); return(true); case ImgFormat.jpg: JPEG.Save(img, path, InternalSettings.Jpeg_Quality); return(true); case ImgFormat.bmp: BMP.Save(img, path); return(true); case ImgFormat.gif: Gif.Save(img, path); return(true); case ImgFormat.tif: TIFF.Save(img, path); return(true); case ImgFormat.wrm: WORM.Save(img, path); return(true); case ImgFormat.webp: Webp.Save(img, path, InternalSettings.WebpQuality_Default); return(true); } } catch (Exception e) { if (ShowExceptions) { e.ShowError(); } return(false); } finally { if (collectGarbage) { GC.Collect(); } } }