mirror of
https://github.com/greenshot/greenshot
synced 2025-07-16 10:03:44 -07:00
Fixed hard coded Encoder, if sometime the encoder order changes this would have broken the code. Also removed a stream wrapper.
git-svn-id: http://svn.code.sf.net/p/greenshot/code/trunk@2130 7dccd23d-a4a3-4e1f-8c07-b4c1b4018ab4
This commit is contained in:
parent
b600d72156
commit
5714b59a14
2 changed files with 16 additions and 9 deletions
|
@ -256,11 +256,9 @@ namespace GreenshotPlugin.Core {
|
||||||
int iImageSize = BitConverter.ToInt32(srcBuf, SizeICONDIR + SizeICONDIRENTRY * iIndex + 8);
|
int iImageSize = BitConverter.ToInt32(srcBuf, SizeICONDIR + SizeICONDIRENTRY * iIndex + 8);
|
||||||
int iImageOffset = BitConverter.ToInt32(srcBuf, SizeICONDIR + SizeICONDIRENTRY * iIndex + 12);
|
int iImageOffset = BitConverter.ToInt32(srcBuf, SizeICONDIR + SizeICONDIRENTRY * iIndex + 12);
|
||||||
using (MemoryStream destStream = new MemoryStream()) {
|
using (MemoryStream destStream = new MemoryStream()) {
|
||||||
using (BinaryWriter writer = new BinaryWriter(destStream)) {
|
destStream.Write(srcBuf, iImageOffset, iImageSize);
|
||||||
writer.Write(srcBuf, iImageOffset, iImageSize);
|
destStream.Seek(0, System.IO.SeekOrigin.Begin);
|
||||||
destStream.Seek(0, System.IO.SeekOrigin.Begin);
|
bmpPngExtracted = new Bitmap(destStream); // This is PNG! :)
|
||||||
bmpPngExtracted = new Bitmap(destStream); // This is PNG! :)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,10 +157,19 @@ namespace GreenshotPlugin.Core {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (imageFormat == ImageFormat.Jpeg) {
|
if (imageFormat == ImageFormat.Jpeg) {
|
||||||
EncoderParameters parameters = new EncoderParameters(1);
|
bool foundEncoder = false;
|
||||||
parameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(Encoder.Quality, outputSettings.JPGQuality);
|
foreach (ImageCodecInfo imageCodec in ImageCodecInfo.GetImageEncoders()) {
|
||||||
ImageCodecInfo[] ies = ImageCodecInfo.GetImageEncoders();
|
if (imageCodec.FormatID == imageFormat.Guid) {
|
||||||
imageToSave.Save(targetStream, ies[1], parameters);
|
EncoderParameters parameters = new EncoderParameters(1);
|
||||||
|
parameters.Param[0] = new EncoderParameter(Encoder.Quality, outputSettings.JPGQuality);
|
||||||
|
imageToSave.Save(targetStream, imageCodec, parameters);
|
||||||
|
foundEncoder = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!foundEncoder) {
|
||||||
|
throw new ApplicationException("No JPG encoder found, this should not happen.");
|
||||||
|
}
|
||||||
} else if (imageFormat != ImageFormat.Png && Image.IsAlphaPixelFormat(imageToSave.PixelFormat)) {
|
} else if (imageFormat != ImageFormat.Png && Image.IsAlphaPixelFormat(imageToSave.PixelFormat)) {
|
||||||
// No transparency in target format
|
// No transparency in target format
|
||||||
using (Bitmap tmpBitmap = ImageHelper.Clone(imageToSave, PixelFormat.Format24bppRgb)) {
|
using (Bitmap tmpBitmap = ImageHelper.Clone(imageToSave, PixelFormat.Format24bppRgb)) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue