internal ImageUrlGenerationOptions GetCropBaseOptions(string url, ImageCropperCrop crop, bool defaultCrop, bool preferFocalPoint) { if (preferFocalPoint && HasFocalPoint() || crop != null && crop.Coordinates == null && HasFocalPoint() || defaultCrop && HasFocalPoint()) { return(new ImageUrlGenerationOptions(url) { FocalPoint = new ImageUrlGenerationOptions.FocalPointPosition(FocalPoint.Top, FocalPoint.Left) }); } else if (crop != null && crop.Coordinates != null && preferFocalPoint == false) { return(new ImageUrlGenerationOptions(url) { Crop = new ImageUrlGenerationOptions.CropCoordinates(crop.Coordinates.X1, crop.Coordinates.Y1, crop.Coordinates.X2, crop.Coordinates.Y2) }); } else { return(new ImageUrlGenerationOptions(url) { DefaultCrop = true }); } }
// fixme was defined in web project, extension methods? why internal? internal void AppendCropBaseUrl(StringBuilder url, ImageCropperCrop crop, bool defaultCrop, bool preferFocalPoint) { if (preferFocalPoint && HasFocalPoint() || crop != null && crop.Coordinates == null && HasFocalPoint() || defaultCrop && HasFocalPoint()) { url.Append("?center="); url.Append(FocalPoint.Top.ToString(CultureInfo.InvariantCulture)); url.Append(","); url.Append(FocalPoint.Left.ToString(CultureInfo.InvariantCulture)); url.Append("&mode=crop"); } else if (crop != null && crop.Coordinates != null && preferFocalPoint == false) { url.Append("?crop="); url.Append(crop.Coordinates.X1.ToString(CultureInfo.InvariantCulture)).Append(","); url.Append(crop.Coordinates.Y1.ToString(CultureInfo.InvariantCulture)).Append(","); url.Append(crop.Coordinates.X2.ToString(CultureInfo.InvariantCulture)).Append(","); url.Append(crop.Coordinates.Y2.ToString(CultureInfo.InvariantCulture)); url.Append("&cropmode=percentage"); } else { url.Append("?anchor=center"); url.Append("&mode=crop"); } }