Hi Earl,
Sorry about that. The answer is there, but not directly. It's in an article
about saving JPEGs with a specific compression
(
http://www.bobpowell.net/jpeg_compression.htm). The EncoderParameters
array is included in 2 overloads of the base Image class Save method, in
your case, the overload that takes a stream as an argument:
System.Drawing.Image.Save(System.IO.Stream,
System.Drawing.Imaging.ImageCodecInfo,
System.Drawing.Imaging.EncoderParameters)
(
http://msdn2.microsoft.com/en-gb/lib...48(VS.80).aspx)
The System.Drawing.Imaging.ImageCodecInfo class
(
http://msdn2.microsoft.com/en-gb/lib...fo(VS.80).aspx)
is easy to create, using the static ImageCodecInfo.GetEncoders method, and
using a MIME string. Here's a method that creates one:
public static ImageCodecInfo GetEncoderInfo(string mimeType)
{
int intCt;
ImageCodecInfo[] aryEncoders = ImageCodecInfo.GetImageEncoders();
for (intCt = 0; intCt < aryEncoders.Length; intCt++)
{
if (aryEncoders[intCt].MimeType == mimeType)
return aryEncoders[intCt];
}
throw new Exception("MimeType '" + mimeType + "' not found");
}
In the case of a BitMap, you would use "image/bmp" as the MIME string:
ImageCodeInfo codecInfo = GetEncoderInfo("image/bmp");
As to the EncoderParameters, the Encoder class
(
http://msdn2.microsoft.com/en-gb/lib...er(VS.80).aspx)
provides a parameter for the image encoder used by the Save method, and you
can create and use any number of them. The constructor for EncoderParameter
usually takes an Encoder
(
http://msdn2.microsoft.com/en-gb/lib...er(VS.80).aspx)
and a value. There are a number of constructor overloads
(
http://msdn2.microsoft.com/en-gb/lib...er(VS.80).aspx)
to handle the different types of Encoders
(
http://msdn2.microsoft.com/en-gb/lib...rs(VS.80).aspx)
available. The most commonly-used values for Encoders can be found in the
System.Drawing.Imaging.EncoderValue enumeration
(
http://msdn2.microsoft.com/en-gb/lib...e(VS.80).aspx).
--
HTH,
Kevin Spencer
Microsoft MVP
Logostician
http://unclechutney.blogspot.com
Parabola is a mate of plane.
"Earl" <brikshoe@newsgroups.nospamwrote in message
news:ObhIIkjFHHA.1240@TK2MSFTNGP03.phx.gbl...
Quote:
Thanks Kevin, I'd already read most of Bob's stuff and I didn't find
anything directly on point.
>
"Kevin Spencer" <spam@uce.govwrote in message
news:O7K0VJiFHHA.3508@TK2MSFTNGP04.phx.gbl...
Quote:
>You should find the following resource very helpful:
>>
>
http://www.bobpowell.net/gdiplus_faq.htm
>>
>--
>HTH,
>>
>Kevin Spencer
>Microsoft MVP
>Logostician
>
http://unclechutney.blogspot.com
>>
>Parabola is a mate of plane.
>>
>>
>"Earl" <brikshoe@newsgroups.nospamwrote in message
>news:uqxzuJeFHHA.2268@TK2MSFTNGP06.phx.gbl...
Quote:
>>>I have an image issue that I do not understand. When I try to save a
>>>bitmap created from a picturebox image, I can save without exception so
>>>long as the bitmap was retrieved from a file and loaded into the
>>>picturebox. But if I load the image from the database into the picturebox
>>>and try to save (without change), I then get a null exception telling me
>>>that the encoder parameter is null. I'm speculating that the file
>>>provides the encoder param but the database image does not. What do I
>>>need to know to resolve this?
>>>
>>int intWidth = pb.Width;
>>int intHeight = pb.Height;
>>Bitmap bmp = new Bitmap(pb.Image, intWidth, intHeight);
>>MemoryStream ms = new MemoryStream();
>>bmp.Save(ms, pb.Image.RawFormat);
>>arrayImage = ms.GetBuffer();
>>ms.Close();
>>>
>>
>>
>
>