mirror of
https://github.com/greenshot/greenshot
synced 2025-08-19 21:13:23 -07:00
Fixed shadow and fixed a problem that alpha-channel bitmaps should NOT be reduced to 8-bit if not forced! (Still need to fix alpha-channel color reduction!) Removed a pre-build "rmdir", this removed the plugins but forces to do a complete rebuild every single time!
git-svn-id: http://svn.code.sf.net/p/greenshot/code/trunk@2507 7dccd23d-a4a3-4e1f-8c07-b4c1b4018ab4
This commit is contained in:
parent
ec5840550a
commit
c3966923e4
2 changed files with 21 additions and 16 deletions
|
@ -41,7 +41,7 @@ namespace Greenshot.Core {
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class DropShadowEffect : IEffect {
|
public class DropShadowEffect : IEffect {
|
||||||
public DropShadowEffect() {
|
public DropShadowEffect() {
|
||||||
Darkness = 1f;
|
Darkness = 0.6f;
|
||||||
ShadowSize = 9;
|
ShadowSize = 9;
|
||||||
ShadowOffset = new Point(-1, -1);
|
ShadowOffset = new Point(-1, -1);
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ namespace Greenshot.Core {
|
||||||
set;
|
set;
|
||||||
}
|
}
|
||||||
public virtual Image Apply(Image sourceImage, out Point offsetChange) {
|
public virtual Image Apply(Image sourceImage, out Point offsetChange) {
|
||||||
return ImageHelper.CreateShadow(sourceImage, Darkness, ShadowSize, ShadowOffset, out offsetChange, PixelFormat.Format32bppArgb); //Image.PixelFormat);
|
return ImageHelper.CreateShadow(sourceImage, Darkness, ShadowSize, ShadowOffset, out offsetChange, PixelFormat.Format32bppArgb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -259,23 +259,28 @@ namespace GreenshotPlugin.Core {
|
||||||
|
|
||||||
// check for color reduction, forced or automatically, only when the DisableReduceColors is false
|
// check for color reduction, forced or automatically, only when the DisableReduceColors is false
|
||||||
if (!outputSettings.DisableReduceColors && (conf.OutputFileAutoReduceColors || outputSettings.ReduceColors)) {
|
if (!outputSettings.DisableReduceColors && (conf.OutputFileAutoReduceColors || outputSettings.ReduceColors)) {
|
||||||
using (WuQuantizer quantizer = new WuQuantizer((Bitmap)imageToSave)) {
|
bool isAlpha = Image.IsAlphaPixelFormat(imageToSave.PixelFormat);
|
||||||
int colorCount = quantizer.GetColorCount();
|
if (outputSettings.ReduceColors || (!isAlpha && conf.OutputFileAutoReduceColors)) {
|
||||||
LOG.InfoFormat("Image with format {0} has {1} colors", imageToSave.PixelFormat, colorCount);
|
using (WuQuantizer quantizer = new WuQuantizer((Bitmap)imageToSave)) {
|
||||||
if (outputSettings.ReduceColors || colorCount < 256) {
|
int colorCount = quantizer.GetColorCount();
|
||||||
try {
|
LOG.InfoFormat("Image with format {0} has {1} colors", imageToSave.PixelFormat, colorCount);
|
||||||
LOG.Info("Reducing colors on bitmap to 256.");
|
if (outputSettings.ReduceColors || colorCount < 256) {
|
||||||
tmpImage = quantizer.GetQuantizedImage(256);
|
try {
|
||||||
if (disposeImage) {
|
LOG.Info("Reducing colors on bitmap to 256.");
|
||||||
imageToSave.Dispose();
|
tmpImage = quantizer.GetQuantizedImage(256);
|
||||||
|
if (disposeImage) {
|
||||||
|
imageToSave.Dispose();
|
||||||
|
}
|
||||||
|
imageToSave = tmpImage;
|
||||||
|
// Make sure the "new" image is disposed
|
||||||
|
disposeImage = true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOG.Warn("Error occurred while Quantizing the image, ignoring and using original. Error: ", e);
|
||||||
}
|
}
|
||||||
imageToSave = tmpImage;
|
|
||||||
// Make sure the "new" image is disposed
|
|
||||||
disposeImage = true;
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.Warn("Error occurred while Quantizing the image, ignoring and using original. Error: ", e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (isAlpha && !outputSettings.ReduceColors) {
|
||||||
|
LOG.Info("Skipping color reduction as the image has alpha");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue