/// <summary> /// Removes staple marks /// </summary> /// <param name="bitmap">Bitmap</param> /// <returns></returns> public static Bitmap RemoveStapleMarks(Bitmap bitmap) { Bitmap resultImage = bitmap; GdPictureImaging image = new GdPictureImaging(); int imageId = image.CreateGdPictureImageFromBitmap(bitmap); try { if (imageId > 0) { if (image.GetBitDepth(imageId) != 1) { image.ConvertTo1BppAT(imageId); } image.RemoveStapleMark(imageId); resultImage = image.GetBitmapFromGdPictureImage(imageId).CloneSmart(image.GetPixelFormat(imageId)); } } catch { } finally { image.ReleaseGdPictureImage(imageId); } return(resultImage); }
/// <summary> /// Removes blobs from image /// </summary> /// <param name="bitmap">Bitmap.</param> /// <param name="blobsDimensions">Blobs dimensions</param> /// <returns></returns> public static Bitmap RemoveBlobs(Bitmap bitmap, BlobsDimensions blobsDimensions) { Bitmap resultImage = bitmap; GdPictureImaging image = new GdPictureImaging(); int imageId = image.CreateGdPictureImageFromBitmap(bitmap); try { if (imageId > 0) { if (image.GetBitDepth(imageId) != 1) { image.ConvertTo1BppAT(imageId); } image.RemoveBlob(imageId, blobsDimensions.MinBlobWidth, blobsDimensions.MinBlobHeight, blobsDimensions.MaxBlobWidth, blobsDimensions.MaxBlobHeight, BlobRemoveMode.FavorQuality); resultImage = image.GetBitmapFromGdPictureImage(imageId).CloneSmart(image.GetPixelFormat(imageId)); } } finally { image.ReleaseGdPictureImage(imageId); } return(resultImage); }
/// <summary> /// Removes lines /// </summary> /// <param name="bitmap">Bitmap</param> /// <param name="orientation">Lines orientation</param> /// <returns></returns> public static Bitmap RemoveLines(Bitmap bitmap, Enums.LineRemoveOrientation orientation) { Bitmap resultImage = bitmap; LineRemoveOrientation lineRemoveOrientation; switch (orientation) { case Enums.LineRemoveOrientation.Horizontal: lineRemoveOrientation = LineRemoveOrientation.Horizontal; break; case Enums.LineRemoveOrientation.Vertical: lineRemoveOrientation = LineRemoveOrientation.Vertical; break; default: return(resultImage); } if (orientation != Enums.LineRemoveOrientation.None) { GdPictureImaging image = new GdPictureImaging(); int imageId = image.CreateGdPictureImageFromBitmap(bitmap); try { if (imageId > 0) { if (image.GetBitDepth(imageId) != 1) { image.ConvertTo1BppAT(imageId); } image.RemoveLines(imageId, lineRemoveOrientation); resultImage = image.GetBitmapFromGdPictureImage(imageId).CloneSmart(image.GetPixelFormat(imageId)); } } finally { image.ReleaseGdPictureImage(imageId); } } return(resultImage); }
/// <summary> /// Removes the holes from holemaker /// </summary> /// <param name="bitmap">Bitmap</param> /// <param name="punchHolesPosition">Holes position</param> /// <returns></returns> public static Bitmap RemovePunchHoles(Bitmap bitmap, PunchHolesPositions punchHolesPosition) { Bitmap resultImage = bitmap; GdPictureImaging image = new GdPictureImaging(); int imageId = image.CreateGdPictureImageFromBitmap(bitmap); try { if (imageId > 0) { if (image.GetBitDepth(imageId) != 1) { image.ConvertTo1BppAT(imageId); } if (punchHolesPosition.LeftSide) { image.RemoveHolePunch(imageId, HolePunchMargins.MarginLeft); } if (punchHolesPosition.TopSide) { image.RemoveHolePunch(imageId, HolePunchMargins.MarginTop); } if (punchHolesPosition.RightSide) { image.RemoveHolePunch(imageId, HolePunchMargins.MarginRight); } if (punchHolesPosition.BottomSide) { image.RemoveHolePunch(imageId, HolePunchMargins.MarginBottom); } resultImage = image.GetBitmapFromGdPictureImage(imageId).CloneSmart(image.GetPixelFormat(imageId)); } } catch (Exception e) { } finally { image.ReleaseGdPictureImage(imageId); } return(resultImage); }