Updated ImageMediaFactory to support png transparency
Updated UmbracoFile to remove '.' from gif extension check
This commit is contained in:
@@ -245,7 +245,7 @@ namespace umbraco.cms.businesslogic.Files
|
|||||||
// Copy metadata
|
// Copy metadata
|
||||||
var imageEncoders = ImageCodecInfo.GetImageEncoders();
|
var imageEncoders = ImageCodecInfo.GetImageEncoders();
|
||||||
ImageCodecInfo codec = null;
|
ImageCodecInfo codec = null;
|
||||||
if (Extension == "png" || Extension == ".gif")
|
if (Extension.ToLower() == "png" || Extension.ToLower() == "gif")
|
||||||
codec = imageEncoders.Single(t => t.MimeType.Equals("image/png"));
|
codec = imageEncoders.Single(t => t.MimeType.Equals("image/png"));
|
||||||
else
|
else
|
||||||
codec = imageEncoders.Single(t => t.MimeType.Equals("image/jpeg"));
|
codec = imageEncoders.Single(t => t.MimeType.Equals("image/jpeg"));
|
||||||
|
|||||||
@@ -54,10 +54,10 @@ namespace umbraco.cms.businesslogic.media
|
|||||||
|
|
||||||
// Generate thumbnail
|
// Generate thumbnail
|
||||||
var thumbDestFilePath = Path.Combine(Path.GetDirectoryName(destFilePath), Path.GetFileNameWithoutExtension(destFilePath) + "_thumb");
|
var thumbDestFilePath = Path.Combine(Path.GetDirectoryName(destFilePath), Path.GetFileNameWithoutExtension(destFilePath) + "_thumb");
|
||||||
GenerateThumbnail(image, 100, fileWidth, fileHeight, thumbDestFilePath + ".jpg");
|
GenerateThumbnail(image, 100, fileWidth, fileHeight, ext, thumbDestFilePath + ".jpg");
|
||||||
|
|
||||||
// Generate additional thumbnails based on PreValues set in DataTypeDefinition uploadField
|
// Generate additional thumbnails based on PreValues set in DataTypeDefinition uploadField
|
||||||
GenerateAdditionalThumbnails(image, fileWidth, fileHeight, thumbDestFilePath);
|
GenerateAdditionalThumbnails(image, fileWidth, fileHeight, ext, thumbDestFilePath);
|
||||||
|
|
||||||
image.Dispose();
|
image.Dispose();
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ namespace umbraco.cms.businesslogic.media
|
|||||||
media.Save();
|
media.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void GenerateAdditionalThumbnails(Image image, int fileWidth, int fileHeight, string destFilePath)
|
private void GenerateAdditionalThumbnails(Image image, int fileWidth, int fileHeight, string ext, string destFilePath)
|
||||||
{
|
{
|
||||||
var uploadFieldDataTypeId = new Guid("5032a6e6-69e3-491d-bb28-cd31cd11086c");
|
var uploadFieldDataTypeId = new Guid("5032a6e6-69e3-491d-bb28-cd31cd11086c");
|
||||||
|
|
||||||
@@ -94,14 +94,14 @@ namespace umbraco.cms.businesslogic.media
|
|||||||
var thumbnailSizes = thumbnails.Split(";".ToCharArray());
|
var thumbnailSizes = thumbnails.Split(";".ToCharArray());
|
||||||
foreach (var thumb in thumbnailSizes.Where(thumb => thumb != ""))
|
foreach (var thumb in thumbnailSizes.Where(thumb => thumb != ""))
|
||||||
{
|
{
|
||||||
GenerateThumbnail(image, int.Parse(thumb), fileWidth, fileHeight,
|
GenerateThumbnail(image, int.Parse(thumb), fileWidth, fileHeight, ext,
|
||||||
destFilePath + "_" + thumb + ".jpg");
|
destFilePath + "_" + thumb + ".jpg");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void GenerateThumbnail(Image image, int maxWidthHeight, int fileWidth, int fileHeight, string thumbnailFileName)
|
private void GenerateThumbnail(Image image, int maxWidthHeight, int fileWidth, int fileHeight, string ext, string thumbnailFileName)
|
||||||
{
|
{
|
||||||
// Generate thumbnailee
|
// Generate thumbnailee
|
||||||
var fx = (float)fileWidth / maxWidthHeight;
|
var fx = (float)fileWidth / maxWidthHeight;
|
||||||
@@ -132,11 +132,10 @@ namespace umbraco.cms.businesslogic.media
|
|||||||
// Copy metadata
|
// Copy metadata
|
||||||
var codecs = ImageCodecInfo.GetImageEncoders();
|
var codecs = ImageCodecInfo.GetImageEncoders();
|
||||||
ImageCodecInfo codec = null;
|
ImageCodecInfo codec = null;
|
||||||
for (var i = 0; codec == null && i < codecs.Length; i++)
|
if (ext.ToLower() == "png" || ext.ToLower() == "gif")
|
||||||
{
|
codec = codecs.Single(t => t.MimeType.Equals("image/png"));
|
||||||
if (codecs[i].MimeType.Equals("image/jpeg"))
|
else
|
||||||
codec = codecs[i];
|
codec = codecs.Single(t => t.MimeType.Equals("image/jpeg"));
|
||||||
}
|
|
||||||
|
|
||||||
// Set compresion ratio to 90%
|
// Set compresion ratio to 90%
|
||||||
var ep = new EncoderParameters();
|
var ep = new EncoderParameters();
|
||||||
|
|||||||
Reference in New Issue
Block a user