Windows Vista Forums
Vista Forums Home Join Vista Forums Donate Vista Tutorials Tags

Welcome to Vista Forums we are your forum to discuss Windows Vista x64 and x86 systems. Whether you need help or just want to post an idea you have on Vista, this is the forum for you.
Register at Vista forums...the world biggest Windows Vista resource Join Vista Forums Now

Go Back   Vista Forums > Microsoft Technical Newsgroups > Avalon

JPEG rotation without recompress

Closed Thread
 
Thread Tools Display Modes
Old 07-11-2006   #1 (permalink)
=?Utf-8?B?RGlyaw==?=
Guest


 

JPEG rotation without recompress

Hello,

is there a way to force the WIC jpeg decoder / encoder to do 90 degree
rotations without recompressing the image ?

Thanks,
Dirk
Old 07-11-2006   #2 (permalink)
robertwl@nospam.microsoft.com
Guest


 

re: JPEG rotation without recompress

Are you using managed or unmanaged code? The short answer is yes, if you use the JpegBitmapEncoder with the rotate property or in unmanaged code, if you specify the rotation encoder property (using IPropertyBag2).

When you specify a rotation for JPEG encoding using this method, we do a lossless rotation if the JPEG can be losslessly rotated.

Robert.

-----Original Message-----
From: Dirk
Posted At: Tuesday, July 11, 2006 3:44 AM
Posted To: microsoft.public.windows.developer.winfx.avalon
Conversation: JPEG rotation without recompress
Subject: JPEG rotation without recompress


Hello,

is there a way to force the WIC jpeg decoder / encoder to do 90 degree
rotations without recompressing the image ?

Thanks,
Dirk
Old 07-11-2006   #3 (permalink)
=?Utf-8?B?RGlyaw==?=
Guest


 

re: JPEG rotation without recompress

Thanks for the response. I´m using managed code like this:

public static void RotateJPEG(string path, Rotation rotation)
{
try
{
FileStream stream = new
FileStream(System.IO.Path.GetDirectoryName(path) + @"\new.jpg",
FileMode.Create);
JpegBitmapEncoder encoder = new JpegBitmapEncoder();

encoder.Rotation = rotation;
encoder.Frames.Add(BitmapFrame.Create(new Uri(path)));
encoder.Save(stream);
stream.Dispose();
}
catch (Exception e)
{
}
}

This code itself works, but a remaining question is, how the QualityLevel
property influences the result: Only used if lossless rotation possible
otherwise ignored ?

Another point related to image rotation:
Maybe there is a bug in BitmapFrame.Thumbnail function ? For digital camera
jpegs shoot in portrait orientation thumbnail function returns an image in
landscape orientation which contains thumbnail in portrait orientation with
black borders on left and right.

"robertwl@nospam.microsoft.com" wrote:

> Are you using managed or unmanaged code? The short answer is yes, if you use the JpegBitmapEncoder with the rotate property or in unmanaged code, if you specify the rotation encoder property (using IPropertyBag2).
>
> When you specify a rotation for JPEG encoding using this method, we do a lossless rotation if the JPEG can be losslessly rotated.
>
> Robert.
>
> -----Original Message-----
> From: Dirk
> Posted At: Tuesday, July 11, 2006 3:44 AM
> Posted To: microsoft.public.windows.developer.winfx.avalon
> Conversation: JPEG rotation without recompress
> Subject: JPEG rotation without recompress
>
>
> Hello,
>
> is there a way to force the WIC jpeg decoder / encoder to do 90 degree
> rotations without recompressing the image ?
>
> Thanks,
> Dirk
>

Old 07-11-2006   #4 (permalink)
robertwl@nospam.microsoft.com
Guest


 

re: JPEG rotation without recompress

Good question! You're best bet to preserve quality is to do this:

public static void RotateJPEG(string path, Rotation rotation)
{
try
{
using (FileStream stream = new
FileStream(System.IO.Path.GetDirectoryName(path) + @"\new.jpg", FileMode.Create)}
{
BitmapDecoder decoder = BitmapDecoder.Create(new Uri(path), BitmapCreateOptions.PreservePixelFormat | BitmapCreateOptions.IgnoreColorProfile, BitmapCacheOption.None);

JpegBitmapEncoder encoder = new JpegBitmapEncoder();

encoder.Rotation = rotation;
encoder.Frames = decoder.Frames;
encoder.Save(stream);
stream.Flush();
}
catch (Exception e)
{
}
}

-----Original Message-----
From: Dirk
Posted At: Tuesday, July 11, 2006 11:43 AM
Posted To: microsoft.public.windows.developer.winfx.avalon
Conversation: JPEG rotation without recompress
Subject: re: JPEG rotation without recompress


Thanks for the response. I´m using managed code like this:

public static void RotateJPEG(string path, Rotation rotation)
{
try
{
FileStream stream = new
FileStream(System.IO.Path.GetDirectoryName(path) + @"\new.jpg",
FileMode.Create);
JpegBitmapEncoder encoder = new JpegBitmapEncoder();

encoder.Rotation = rotation;
encoder.Frames.Add(BitmapFrame.Create(new Uri(path)));
encoder.Save(stream);
stream.Dispose();
}
catch (Exception e)
{
}
}

This code itself works, but a remaining question is, how the QualityLevel
property influences the result: Only used if lossless rotation possible
otherwise ignored ?

Another point related to image rotation:
Maybe there is a bug in BitmapFrame.Thumbnail function ? For digital camera
jpegs shoot in portrait orientation thumbnail function returns an image in
landscape orientation which contains thumbnail in portrait orientation with
black borders on left and right.

"robertwl@nospam.microsoft.com" wrote:

> Are you using managed or unmanaged code? The short answer is yes, if you use the JpegBitmapEncoder with the rotate property or in unmanaged code, if you specify the rotation encoder property (using IPropertyBag2).
>
> When you specify a rotation for JPEG encoding using this method, we do a lossless rotation if the JPEG can be losslessly rotated.
>
> Robert.
>
> -----Original Message-----
> From: Dirk
> Posted At: Tuesday, July 11, 2006 3:44 AM
> Posted To: microsoft.public.windows.developer.winfx.avalon
> Conversation: JPEG rotation without recompress
> Subject: JPEG rotation without recompress
>
>
> Hello,
>
> is there a way to force the WIC jpeg decoder / encoder to do 90 degree
> rotations without recompressing the image ?
>
> Thanks,
> Dirk
>

Old 07-12-2006   #5 (permalink)
=?Utf-8?B?RGlyaw==?=
Guest


 

re: JPEG rotation without recompress

This works and I´m using the code now to rotate JPEG image and overwrite the
original file, which results in a bug for two 90 degree rotates:
First one is ok -> 90°
second one -> shows 0° ( original image instead of 180° )
third one again is ok -> 270°

Another point for the documentation:
it would be helpful, to know which of the components of the WIC are locking
the image file, how to force them to close the file or for constructors with
stream, who is closing / allowed to close the stream.


"robertwl@nospam.microsoft.com" wrote:

> Good question! You're best bet to preserve quality is to do this:
>
> public static void RotateJPEG(string path, Rotation rotation)
> {
> try
> {
> using (FileStream stream = new
> FileStream(System.IO.Path.GetDirectoryName(path) + @"\new.jpg", FileMode.Create)}
> {
> BitmapDecoder decoder = BitmapDecoder.Create(new Uri(path), BitmapCreateOptions.PreservePixelFormat | BitmapCreateOptions.IgnoreColorProfile, BitmapCacheOption.None);
>
> JpegBitmapEncoder encoder = new JpegBitmapEncoder();
>
> encoder.Rotation = rotation;
> encoder.Frames = decoder.Frames;
> encoder.Save(stream);
> stream.Flush();
> }
> catch (Exception e)
> {
> }
> }
>
> -----Original Message-----
> From: Dirk
> Posted At: Tuesday, July 11, 2006 11:43 AM
> Posted To: microsoft.public.windows.developer.winfx.avalon
> Conversation: JPEG rotation without recompress
> Subject: re: JPEG rotation without recompress
>
>
> Thanks for the response. I´m using managed code like this:
>
> public static void RotateJPEG(string path, Rotation rotation)
> {
> try
> {
> FileStream stream = new
> FileStream(System.IO.Path.GetDirectoryName(path) + @"\new.jpg",
> FileMode.Create);
> JpegBitmapEncoder encoder = new JpegBitmapEncoder();
>
> encoder.Rotation = rotation;
> encoder.Frames.Add(BitmapFrame.Create(new Uri(path)));
> encoder.Save(stream);
> stream.Dispose();
> }
> catch (Exception e)
> {
> }
> }
>
> This code itself works, but a remaining question is, how the QualityLevel
> property influences the result: Only used if lossless rotation possible
> otherwise ignored ?
>
> Another point related to image rotation:
> Maybe there is a bug in BitmapFrame.Thumbnail function ? For digital camera
> jpegs shoot in portrait orientation thumbnail function returns an image in
> landscape orientation which contains thumbnail in portrait orientation with
> black borders on left and right.
>
> "robertwl@nospam.microsoft.com" wrote:
>
> > Are you using managed or unmanaged code? The short answer is yes, if you use the JpegBitmapEncoder with the rotate property or in unmanaged code, if you specify the rotation encoder property (using IPropertyBag2).
> >
> > When you specify a rotation for JPEG encoding using this method, we do a lossless rotation if the JPEG can be losslessly rotated.
> >
> > Robert.
> >
> > -----Original Message-----
> > From: Dirk
> > Posted At: Tuesday, July 11, 2006 3:44 AM
> > Posted To: microsoft.public.windows.developer.winfx.avalon
> > Conversation: JPEG rotation without recompress
> > Subject: JPEG rotation without recompress
> >
> >
> > Hello,
> >
> > is there a way to force the WIC jpeg decoder / encoder to do 90 degree
> > rotations without recompressing the image ?
> >
> > Thanks,
> > Dirk
> >

>

Old 07-13-2006   #6 (permalink)
robertwl@nospam.microsoft.com
Guest


 

re: JPEG rotation without recompress

V\0e\0r\0y\0 \0i\0n\0t\0e\0r\0e\0s\0t\0i\0n\0g\0.\0 \0T\0h\0a\0n\0k\0s\0 \0f\0o\0r\0 \0r\0e\0p\0o\0r\0t\0i\0n\0g\0 \0t\0h\0a\0t\0.\0 \0I\0'\0l\0l\0 \0i\0n\0v\0e\0s\0t\0i\0g\0a\0t\0e\0 \0f\0u\0r\0t\0h\0e\0r\0.

A\0s\0 \0f\0a\0r\0 \0a\0s\0 \0f\0i\0l\0e\0 \0l\0o\0c\0k\0i\0n\0g\0 \0g\0o\0e\0s\0.\0.\0.\0 \0I\0f\0 \0y\0o\0u\0 \0u\0s\0e\0 \0B\0i\0t\0m\0a\0p\0C\0a\0c\0h\0e\0O\0p\0t\0i\0o\0n\0.\0O\0n\0L\0o\0a\0d\0,\0 \0t\0h\0e\0 \0i\0m\0a\0g\0e\0 \0w\0i\0l\0l\0 \0b\0e\0 \0f\0u\0l\0l\0y\0 \0d\0e\0c\0o\0d\0e\0d\0 \0a\0t\0 \0l\0o\0a\0d\0 \0t\0i\0m\0e\0.\0 \0H\0o\0w\0e\0v\0e\0r\0,\0 \0i\0f\0 \0y\0o\0u\0 \0u\0s\0e\0 \0a\0n\0y\0 \0o\0t\0h\0e\0r\0 \0B\0i\0t\0m\0a\0p\0C\0a\0c\0h\0e\0O\0p\0t\0i\0o\0n\0,\0 \0t\0h\0e\0n\0 \0t\0h\0e\0 \0f\0i\0l\0e\0 \0l\0o\0c\0k\0 \0w\0i\0l\0l\0 \0b\0e\0 \0t\0h\0e\0r\0e\0 \0u\0n\0t\0i\0l\0 \0t\0e\0r\0m\0i\0n\0a\0t\0i\0o\0n\0 \0o\0f\0 \0t\0h\0e\0 \0a\0p\0p\0l\0i\0c\0a\0t\0i\0o\0n\0.\0 \0T\0h\0e\0 \0r\0e\0a\0s\0o\0n\0 \0f\0o\0r\0 \0t\0h\0i\0s\0 \0i\0s\0 \0t\0h\0a\0t\0:
D\0e\0f\0a\0u\0l\0t\0 \0o\0r\0 \0O\0n\0D\0e\0m\0a\0n\0d\0:\0 \0c\0r\0e\0a\0t\0e\0s\0 \0t\0h\0e\0 \0c\0a\0c\0h\0e\0 \0t\0h\0e\0 \0f\0i\0r\0s\0t\0 \0t\0i\0m\0e\0 \0t\0h\0e\0 \0i\0m\0a\0g\0e\0 \0i\0s\0 \0r\0e\0n\0d\0e\0r\0e\0d\0 \0o\0r\0 \0C\0o\0p\0y\0P\0i\0x\0e\0l\0s\0 \0i\0s\0 \0c\0a\0l\0l\0e\0d
N\0o\0n\0e\0:\0 \0e\0a\0c\0h\0 \0t\0i\0m\0e\0 \0t\0h\0e\0 \0i\0m\0a\0g\0e\0 \0i\0s\0 \0r\0e\0n\0d\0e\0r\0e\0d\0 \0o\0r\0 \0C\0o\0p\0y\0P\0i\0x\0e\0l\0s\0 \0i\0s\0 \0c\0a\0l\0l\0e\0d\0,\0 \0t\0h\0e\0n\0 \0t\0h\0e\0 \0i\0m\0a\0g\0e\0 \0i\0s\0 \0r\0e\0-\0d\0e\0c\0o\0d\0e\0d



-\0-\0-\0-\0-\0O\0r\0i\0g\0i\0n\0a\0l\0 \0M\0e\0s\0s\0a\0g\0e\0-\0-\0-\0-\0-
F\0r\0o\0m\0:\0 \0D\0i\0r\0k
P\0o\0s\0t\0e\0d\0 \0A\0t\0:\0 \0W\0e\0d\0n\0e\0s\0d\0a\0y\0,\0 \0J\0u\0l\0y\0 \01\02\0,\0 \02\00\00\06\0 \06\0:\04\09\0 \0A\0M
P\0o\0s\0t\0e\0d\0 \0T\0o\0:\0 \0m\0i\0c\0r\0o\0s\0o\0f\0t\0.\0p\0u\0b\0l\0i\0c\0.\0w\0i\0n\0d\0o\0w\0s\0.\0d\0e\0v\0e\0l\0o\0p\0e\0r\0.\0w\0i\0n\0f\0x\0.\0a\0v\0a\0l\0o\0n
C\0o\0n\0v\0e\0r\0s\0a\0t\0i\0o\0n\0:\0 \0J\0P\0E\0G\0 \0r\0o\0t\0a\0t\0i\0o\0n\0 \0w\0i\0t\0h\0o\0u\0t\0 \0r\0e\0c\0o\0m\0p\0r\0e\0s\0s
S\0u\0b\0j\0e\0c\0t\0:\0 \0r\0e\0:\0 \0J\0P\0E\0G\0 \0r\0o\0t\0a\0t\0i\0o\0n\0 \0w\0i\0t\0h\0o\0u\0t\0 \0r\0e\0c\0o\0m\0p\0r\0e\0s\0s


T\0h\0i\0s\0 \0w\0o\0r\0k\0s\0 \0a\0n\0d\0 \0I\0´\0m\0 \0u\0s\0i\0n\0g\0 \0t\0h\0e\0 \0c\0o\0d\0e\0 \0n\0o\0w\0 \0t\0o\0 \0r\0o\0t\0a\0t\0e\0 \0J\0P\0E\0G\0 \0i\0m\0a\0g\0e\0 \0a\0n\0d\0 \0o\0v\0e\0r\0w\0r\0i\0t\0e\0 \0t\0h\0e
o\0r\0i\0g\0i\0n\0a\0l\0 \0f\0i\0l\0e\0,\0 \0w\0h\0i\0c\0h\0 \0r\0e\0s\0u\0l\0t\0s\0 \0i\0n\0 \0a\0 \0b\0u\0g\0 \0f\0o\0r\0 \0t\0w\0o\0 \09\00\0 \0d\0e\0g\0r\0e\0e\0 \0r\0o\0t\0a\0t\0e\0s\0:
F\0i\0r\0s\0t\0 \0o\0n\0e\0 \0i\0s\0 \0o\0k\0 \0-\0>\0 \09\00\0°
s\0e\0c\0o\0n\0d\0 \0o\0n\0e\0 \0-\0>\0 \0s\0h\0o\0w\0s\0 \00\0°\0 \0(\0 \0o\0r\0i\0g\0i\0n\0a\0l\0 \0i\0m\0a\0g\0e\0 \0i\0n\0s\0t\0e\0a\0d\0 \0o\0f\0 \01\08\00\0°\0 \0)
t\0h\0i\0r\0d\0 \0o\0n\0e\0 \0a\0g\0a\0i\0n\0 \0i\0s\0 \0o\0k\0 \0-\0>\0 \02\07\00\0°

A\0n\0o\0t\0h\0e\0r\0 \0p\0o\0i\0n\0t\0 \0f\0o\0r\0 \0t\0h\0e\0 \0d\0o\0c\0u\0m\0e\0n\0t\0a\0t\0i\0o\0n\0:
i\0t\0 \0w\0o\0u\0l\0d\0 \0b\0e\0 \0h\0e\0l\0p\0f\0u\0l\0,\0 \0t\0o\0 \0k\0n\0o\0w\0 \0w\0h\0i\0c\0h\0 \0o\0f\0 \0t\0h\0e\0 \0c\0o\0m\0p\0o\0n\0e\0n\0t\0s\0 \0o\0f\0 \0t\0h\0e\0 \0W\0I\0C\0 \0a\0r\0e\0 \0l\0o\0c\0k\0i\0n\0g
t\0h\0e\0 \0i\0m\0a\0g\0e\0 \0f\0i\0l\0e\0,\0 \0h\0o\0w\0 \0t\0o\0 \0f\0o\0r\0c\0e\0 \0t\0h\0e\0m\0 \0t\0o\0 \0c\0l\0o\0s\0e\0 \0t\0h\0e\0 \0f\0i\0l\0e\0 \0o\0r\0 \0f\0o\0r\0 \0c\0o\0n\0s\0t\0r\0u\0c\0t\0o\0r\0s\0 \0w\0i\0t\0h
s\0t\0r\0e\0a\0m\0,\0 \0w\0h\0o\0 \0i\0s\0 \0c\0l\0o\0s\0i\0n\0g\0 \0/\0 \0a\0l\0l\0o\0w\0e\0d\0 \0t\0o\0 \0c\0l\0o\0s\0e\0 \0t\0h\0e\0 \0s\0t\0r\0e\0a\0m\0.


"\0r\0o\0b\0e\0r\0t\0w\0l\0@\0n\0o\0s\0p\0a\0m\0.\0m\0i\0c\0r\0o\0s\0o\0f\0t\0.\0c\0o\0m\0"\0 \0w\0r\0o\0t\0e\0:

>\0 \0G\0o\0o\0d\0 \0q\0u\0e\0s\0t\0i\0o\0n\0!\0 \0Y\0o\0u\0'\0r\0e\0 \0b\0e\0s\0t\0 \0b\0e\0t\0 \0t\0o\0 \0p\0r\0e\0s\0e\0r\0v\0e\0 \0q\0u\0a\0l\0i\0t\0y\0 \0i\0s\0 \0t\0o\0 \0d\0o\0 \0t\0h\0i\0s\0:
>
>\0 \0 \0 \0 \0 \0p\0u\0b\0l\0i\0c\0 \0s\0t\0a\0t\0i\0c\0 \0v\0o\0i\0d\0 \0R\0o\0t\0a\0t\0e\0J\0P\0E\0G\0(\0s\0t\0r\0i\0n\0g\0 \0p\0a\0t\0h\0,\0 \0R\0o\0t\0a\0t\0i\0o\0n\0 \0r\0o\0t\0a\0t\0i\0o\0n\0)
>\0 \0 \0 \0 \0 \0{
>\0 \0 \0 \0 \0 \0 \0 \0t\0r\0y
>\0 \0 \0 \0 \0 \0 \0 \0{
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0u\0s\0i\0n\0g\0 \0(\0F\0i\0l\0e\0S\0t\0r\0e\0a\0m\0 \0 \0 \0 \0 \0 \0 \0 \0s\0t\0r\0e\0a\0m\0 \0 \0=\0 \0n\0e\0w
>\0 \0F\0i\0l\0e\0S\0t\0r\0e\0a\0m\0(\0S\0y\0s\0t\0e\0m\0.\0I\0O\0.\0P\0a\0t\0h\0.\0G\0e\0t\0D\0i\0r\0e\0c\0t\0o\0r\0y\0N\0a\0m\0e\0(\0p\0a\0t\0h\0)\0 \0+\0 \0@\0"\0\\0n\0e\0w\0.\0j\0p\0g\0"\0,\0 \0F\0i\0l\0e\0M\0o\0d\0e\0.\0C\0r\0e\0a\0t\0e\0)\0}
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0{
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0B\0i\0t\0m\0a\0p\0D\0e\0c\0o\0d\0e\0r\0 \0d\0e\0c\0o\0d\0e\0r\0 \0=\0 \0B\0i\0t\0m\0a\0p\0D\0e\0c\0o\0d\0e\0r\0.\0C\0r\0e\0a\0t\0e\0(\0n\0e\0w\0 \0U\0r\0i\0(\0p\0a\0t\0h\0)\0,\0 \0B\0i\0t\0m\0a\0p\0C\0r\0e\0a\0t\0e\0O\0p\0t\0i\0o\0n\0s\0.\0P\0r\0e\0s\0e\0r\0v\0e\0P\0i\0x\0e\0l\0F\0o\0r\0m\0a\0t\0 \0|\0 \0B\0i\0t\0m\0a\0p\0C\0r\0e\0a\0t\0e\0O\0p\0t\0i\0o\0n\0s\0.\0I\0g\0n\0o\0r\0e\0C\0o\0l\0o\0r\0P\0r\0o\0f\0i\0l\0e\0,\0 \0B\0i\0t\0m\0a\0p\0C\0a\0c\0h\0e\0O\0p\0t\0i\0o\0n\0.\0N\0o\0n\0e\0)\0;
>
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0J\0p\0e\0g\0B\0i\0t\0m\0a\0p\0E\0n\0c\0o\0d\0e\0r\0 \0e\0n\0c\0o\0d\0e\0r\0 \0=\0 \0n\0e\0w\0 \0J\0p\0e\0g\0B\0i\0t\0m\0a\0p\0E\0n\0c\0o\0d\0e\0r\0(\0)\0;
>
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0e\0n\0c\0o\0d\0e\0r\0.\0R\0o\0t\0a\0t\0i\0o\0n\0 \0=\0 \0r\0o\0t\0a\0t\0i\0o\0n\0;
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0e\0n\0c\0o\0d\0e\0r\0.\0F\0r\0a\0m\0e\0s\0 \0=\0 \0d\0e\0c\0o\0d\0e\0r\0.\0F\0r\0a\0m\0e\0s\0;
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0e\0n\0c\0o\0d\0e\0r\0.\0S\0a\0v\0e\0(\0s\0t\0r\0e\0a\0m\0)\0;
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0s\0t\0r\0e\0a\0m\0.\0F\0l\0u\0s\0h\0(\0)\0;
>\0 \0 \0 \0 \0 \0 \0 \0}
>\0 \0 \0 \0 \0 \0 \0 \0c\0a\0t\0c\0h\0 \0(\0E\0x\0c\0e\0p\0t\0i\0o\0n\0 \0e\0)
>\0 \0 \0 \0 \0 \0 \0 \0{
>\0 \0 \0 \0 \0 \0 \0 \0}
>\0 \0 \0 \0 \0 \0}
>
>\0 \0-\0-\0-\0-\0-\0O\0r\0i\0g\0i\0n\0a\0l\0 \0M\0e\0s\0s\0a\0g\0e\0-\0-\0-\0-\0-
>\0 \0F\0r\0o\0m\0:\0 \0D\0i\0r\0k
>\0 \0P\0o\0s\0t\0e\0d\0 \0A\0t\0:\0 \0T\0u\0e\0s\0d\0a\0y\0,\0 \0J\0u\0l\0y\0 \01\01\0,\0 \02\00\00\06\0 \01\01\0:\04\03\0 \0A\0M
>\0 \0P\0o\0s\0t\0e\0d\0 \0T\0o\0:\0 \0m\0i\0c\0r\0o\0s\0o\0f\0t\0.\0p\0u\0b\0l\0i\0c\0.\0w\0i\0n\0d\0o\0w\0s\0.\0d\0e\0v\0e\0l\0o\0p\0e\0r\0.\0w\0i\0n\0f\0x\0.\0a\0v\0a\0l\0o\0n
>\0 \0C\0o\0n\0v\0e\0r\0s\0a\0t\0i\0o\0n\0:\0 \0J\0P\0E\0G\0 \0r\0o\0t\0a\0t\0i\0o\0n\0 \0w\0i\0t\0h\0o\0u\0t\0 \0r\0e\0c\0o\0m\0p\0r\0e\0s\0s
>\0 \0S\0u\0b\0j\0e\0c\0t\0:\0 \0r\0e\0:\0 \0J\0P\0E\0G\0 \0r\0o\0t\0a\0t\0i\0o\0n\0 \0w\0i\0t\0h\0o\0u\0t\0 \0r\0e\0c\0o\0m\0p\0r\0e\0s\0s
>
>
>\0 \0T\0h\0a\0n\0k\0s\0 \0f\0o\0r\0 \0t\0h\0e\0 \0r\0e\0s\0p\0o\0n\0s\0e\0.\0 \0I\0´\0m\0 \0u\0s\0i\0n\0g\0 \0m\0a\0n\0a\0g\0e\0d\0 \0c\0o\0d\0e\0 \0l\0i\0k\0e\0 \0t\0h\0i\0s\0:
>
>\0 \0 \0 \0 \0 \0p\0u\0b\0l\0i\0c\0 \0s\0t\0a\0t\0i\0c\0 \0v\0o\0i\0d\0 \0R\0o\0t\0a\0t\0e\0J\0P\0E\0G\0(\0s\0t\0r\0i\0n\0g\0 \0p\0a\0t\0h\0,\0 \0R\0o\0t\0a\0t\0i\0o\0n\0 \0r\0o\0t\0a\0t\0i\0o\0n\0)
>\0 \0 \0 \0 \0 \0{
>\0 \0 \0 \0 \0 \0 \0 \0t\0r\0y
>\0 \0 \0 \0 \0 \0 \0 \0{
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0F\0i\0l\0e\0S\0t\0r\0e\0a\0m\0 \0 \0 \0 \0 \0 \0 \0 \0s\0t\0r\0e\0a\0m\0 \0 \0=\0 \0n\0e\0w
>\0 \0F\0i\0l\0e\0S\0t\0r\0e\0a\0m\0(\0S\0y\0s\0t\0e\0m\0.\0I\0O\0.\0P\0a\0t\0h\0.\0G\0e\0t\0D\0i\0r\0e\0c\0t\0o\0r\0y\0N\0a\0m\0e\0(\0p\0a\0t\0h\0)\0 \0+\0 \0@\0"\0\\0n\0e\0w\0.\0j\0p\0g\0"\0,
>\0 \0F\0i\0l\0e\0M\0o\0d\0e\0.\0C\0r\0e\0a\0t\0e\0)\0;
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0J\0p\0e\0g\0B\0i\0t\0m\0a\0p\0E\0n\0c\0o\0d\0e\0r\0 \0e\0n\0c\0o\0d\0e\0r\0 \0=\0 \0n\0e\0w\0 \0J\0p\0e\0g\0B\0i\0t\0m\0a\0p\0E\0n\0c\0o\0d\0e\0r\0(\0)\0;
>
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0e\0n\0c\0o\0d\0e\0r\0.\0R\0o\0t\0a\0t\0i\0o\0n\0 \0=\0 \0r\0o\0t\0a\0t\0i\0o\0n\0;
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0e\0n\0c\0o\0d\0e\0r\0.\0F\0r\0a\0m\0e\0s\0.\0A\0d\0d\0(\0B\0i\0t\0m\0a\0p\0F\0r\0a\0m\0e\0.\0C\0r\0e\0a\0t\0e\0(\0n\0e\0w\0 \0U\0r\0i\0(\0p\0a\0t\0h\0)\0)\0)\0;
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0e\0n\0c\0o\0d\0e\0r\0.\0S\0a\0v\0e\0(\0s\0t\0r\0e\0a\0m\0)\0;
>\0 \0 \0 \0 \0 \0 \0 \0 \0 \0s\0t\0r\0e\0a\0m\0.\0D\0i\0s\0p\0o\0s\0e\0(\0)\0;
>\0 \0 \0 \0 \0 \0 \0 \0}
>\0 \0 \0 \0 \0 \0 \0 \0c\0a\0t\0c\0h\0 \0(\0E\0x\0c\0e\0p\0t\0i\0o\0n\0 \0e\0)
>\0 \0 \0 \0 \0 \0 \0 \0{
>\0 \0 \0 \0 \0 \0 \0 \0}
>\0 \0 \0 \0 \0 \0}
>
>\0 \0T\0h\0i\0s\0 \0c\0o\0d\0e\0 \0i\0t\0s\0e\0l\0f\0 \0w\0o\0r\0k\0s\0,\0 \0b\0u\0t\0 \0a\0 \0r\0e\0m\0a\0i\0n\0i\0n\0g\0 \0q\0u\0e\0s\0t\0i\0o\0n\0 \0i\0s\0,\0 \0h\0o\0w\0 \0t\0h\0e\0 \0Q\0u\0a\0l\0i\0t\0y\0L\0e\0v\0e\0l
>\0 \0p\0r\0o\0p\0e\0r\0t\0y\0 \0 \0i\0n\0f\0l\0u\0e\0n\0c\0e\0s\0 \0t\0h\0e\0 \0r\0e\0s\0u\0l\0t\0:\0 \0O\0n\0l\0y\0 \0u\0s\0e\0d\0 \0i\0f\0 \0l\0o\0s\0s\0l\0e\0s\0s\0 \0r\0o\0t\0a\0t\0i\0o\0n\0 \0p\0o\0s\0s\0i\0b\0l\0e
>\0 \0o\0t\0h\0e\0r\0w\0i\0s\0e\0 \0i\0g\0n\0o\0r\0e\0d\0 \0?
>
>\0 \0A\0n\0o\0t\0h\0e\0r\0 \0p\0o\0i\0n\0t\0 \0r\0e\0l\0a\0t\0e\0d\0 \0t\0o\0 \0i\0m\0a\0g\0e\0 \0r\0o\0t\0a\0t\0i\0o\0n\0:
>\0 \0M\0a\0y\0b\0e\0 \0t\0h\0e\0r\0e\0 \0i\0s\0 \0a\0 \0b\0u\0g\0 \0i\0n\0 \0B\0i\0t\0m\0a\0p\0F\0r\0a\0m\0e\0.\0T\0h\0u\0m\0b\0n\0a\0i\0l\0 \0f\0u\0n\0c\0t\0i\0o\0n\0 \0?\0 \0F\0o\0r\0 \0d\0i\0g\0i\0t\0a\0l\0 \0c\0a\0m\0e\0r\0a
>\0 \0j\0p\0e\0g\0s\0 \0s\0h\0o\0o\0t\0 \0i\0n\0 \0p\0o\0r\0t\0r\0a\0i\0t\0 \0o\0r\0i\0e\0n\0t\0a\0t\0i\0o\0n\0 \0t\0h\0u\0m\0b\0n\0a\0i\0l\0 \0f\0u\0n\0c\0t\0i\0o\0n\0 \0r\0e\0t\0u\0r\0n\0s\0 \0a\0n\0 \0i\0m\0a\0g\0e\0 \0i\0n
>\0 \0l\0a\0n\0d\0s\0c\0a\0p\0e\0 \0o\0r\0i\0e\0n\0t\0a\0t\0i\0o\0n\0 \0w\0h\0i\0c\0h\0 \0c\0o\0n\0t\0a\0i\0n\0s\0 \0t\0h\0u\0m\0b\0n\0a\0i\0l\0 \0i\0n\0 \0p\0o\0r\0t\0r\0a\0i\0t\0 \0o\0r\0i\0e\0n\0t\0a\0t\0i\0o\0n\0 \0w\0i\0t\0h
>\0 \0b\0l\0a\0c\0k\0 \0b\0o\0r\0d\0e\0r\0s\0 \0o\0n\0 \0l\0e\0f\0t\0 \0a\0n\0d\0 \0r\0i\0g\0h\0t\0.
>
>\0 \0"\0r\0o\0b\0e\0r\0t\0w\0l\0@\0n\0o\0s\0p\0a\0m\0.\0m\0i\0c\0r\0o\0s\0o\0f\0t\0.\0c\0o\0m\0"\0 \0w\0r\0o\0t\0e\0:
>
>\0 \0>\0 \0A\0r\0e\0 \0y\0o\0u\0 \0u\0s\0i\0n\0g\0 \0m\0a\0n\0a\0g\0e\0d\0 \0o\0r\0 \0u\0n\0m\0a\0n\0a\0g\0e\0d\0 \0c\0o\0d\0e\0?\0 \0T\0h\0e\0 \0s\0h\0o\0r\0t\0 \0a\0n\0s\0w\0e\0r\0 \0i\0s\0 \0y\0e\0s\0,\0 \0i\0f\0 \0y\0o\0u\0 \0u\0s\0e\0 \0t\0h\0e\0 \0J\0p\0e\0g\0B\0i\0t\0m\0a\0p\0E\0n\0c\0o\0d\0e\0r\0 \0w\0i\0t\0h\0 \0t\0h\0e\0 \0r\0o\0t\0a\0t\0e\0 \0p\0r\0o\0p\0e\0r\0t\0y\0 \0o\0r\0 \0i\0n\0 \0u\0n\0m\0a\0n\0a\0g\0e\0d\0 \0c\0o\0d\0e\0,\0 \0i\0f\0 \0y\0o\0u\0 \0s\0p\0e\0c\0i\0f\0y\0 \0t\0h\0e\0 \0r\0o\0t\0a\0t\0i\0o\0n\0 \0e\0n\0c\0o\0d\0e\0r\0 \0p\0r\0o\0p\0e\0r\0t\0y\0 \0(\0u\0s\0i\0n\0g\0 \0I\0P\0r\0o\0p\0e\0r\0t\0y\0B\0a\0g\02\0)\0.
>\0 \0>
>\0 \0>\0 \0W\0h\0e\0n\0 \0y\0o\0u\0 \0s\0p\0e\0c\0i\0f\0y\0 \0a\0 \0r\0o\0t\0a\0t\0i\0o\0n\0 \0f\0o\0r\0 \0J\0P\0E\0G\0 \0e\0n\0c\0o\0d\0i\0n\0g\0 \0u\0s\0i\0n\0g\0 \0t\0h\0i\0s\0 \0m\0e\0t\0h\0o\0d\0,\0 \0w\0e\0 \0d\0o\0 \0a\0 \0l\0o\0s\0s\0l\0e\0s\0s\0 \0r\0o\0t\0a\0t\0i\0o\0n\0 \0i\0f\0 \0t\0h\0e\0 \0J\0P\0E\0G\0 \0c\0a\0n\0 \0b\0e\0 \0l\0o\0s\0s\0l\0e\0s\0s\0l\0y\0 \0r\0o\0t\0a\0t\0e\0d\0.
>\0 \0>
>\0 \0>\0 \0R\0o\0b\0e\0r\0t\0.
>\0 \0>
>\0 \0>\0 \0-\0-\0-\0-\0-\0O\0r\0i\0g\0i\0n\0a\0l\0 \0M\0e\0s\0s\0a\0g\0e\0-\0-\0-\0-\0-
>\0 \0>\0 \0F\0r\0o\0m\0:\0 \0D\0i\0r\0k
>\0 \0>\0 \0P\0o\0s\0t\0e\0d\0 \0A\0t\0:\0 \0T\0u\0e\0s\0d\0a\0y\0,\0 \0J\0u\0l\0y\0 \01\01\0,\0 \02\00\00\06\0 \03\0:\04\04\0 \0A\0M
>\0 \0>\0 \0P\0o\0s\0t\0e\0d\0 \0T\0o\0:\0 \0m\0i\0c\0r\0o\0s\0o\0f\0t\0.\0p\0u\0b\0l\0i\0c\0.\0w\0i\0n\0d\0o\0w\0s\0.\0d\0e\0v\0e\0l\0o\0p\0e\0r\0.\0w\0i\0n\0f\0x\0.\0a\0v\0a\0l\0o\0n
>\0 \0>\0 \0C\0o\0n\0v\0e\0r\0s\0a\0t\0i\0o\0n\0:\0 \0J\0P\0E\0G\0 \0r\0o\0t\0a\0t\0i\0o\0n\0 \0w\0i\0t\0h\0o\0u\0t\0 \0r\0e\0c\0o\0m\0p\0r\0e\0s\0s
>\0 \0>\0 \0S\0u\0b\0j\0e\0c\0t\0:\0 \0J\0P\0E\0G\0 \0r\0o\0t\0a\0t\0i\0o\0n\0 \0w\0i\0t\0h\0o\0u\0t\0 \0r\0e\0c\0o\0m\0p\0r\0e\0s\0s
>\0 \0>
>\0 \0>
>\0 \0>\0 \0H\0e\0l\0l\0o\0,
>\0 \0>
>\0 \0>\0 \0i\0s\0 \0t\0h\0e\0r\0e\0 \0a\0 \0w\0a\0y\0 \0t\0o\0 \0f\0o\0r\0c\0e\0 \0t\0h\0e\0 \0W\0I\0C\0 \0j\0p\0e\0g\0 \0d\0e\0c\0o\0d\0e\0r\0 \0/\0 \0e\0n\0c\0o\0d\0e\0r\0 \0t\0o\0 \0d\0o\0 \09\00\0 \0d\0e\0g\0r\0e\0e
>\0 \0>\0 \0r\0o\0t\0a\0t\0i\0o\0n\0s\0 \0w\0i\0t\0h\0o\0u\0t\0 \0r\0e\0c\0o\0m\0p\0r\0e\0s\0s\0i\0n\0g\0 \0t\0h\0e\0 \0i\0m\0a\0g\0e\0 \0?
>\0 \0>
>\0 \0>\0 \0T\0h\0a\0n\0k\0s\0,
>\0 \0>\0 \0D\0i\0r\0k
>\0 \0>
>


Old 07-13-2006   #7 (permalink)
Barry Kelly
Guest


 

Re: JPEG rotation without recompress

robertwl@nospam.microsoft.com wrote:

> V\0e\0r\0y\0 \0i\0n\0t\0e\0r\0e\0s\0t\0i\0n\0g\0.


Your body text is in UTF-16, but the header on your post says UTF-8:

| Content-Transfer-Encoding: UTF-8
| Content-Type: text/plain;charset="Utf-8"

-- Barry

--
http://barrkel.blogspot.com/
Old 07-13-2006   #8 (permalink)
robertwl@nospam.microsoft.com
Guest


 

re: JPEG rotation without recompress

Not sure why this happened...

What the replied had was something along these lines:

Thanks for reporting the issue with the save. I'll try to repro on my end.

As for the file locking issue goes... If you use BitmapCacheOption.OnLoad, the file will be locked for a short period of time while the iamge is being decoded. But the lock is released fairly quickly. For other BitmapCacheOptions, the file will be locked until the application is shutdown:
1. OnDemand or Default: The cache will be created only when the image is rendered or CopyPixels is called.
2. None: No cache will be created. Each time the image is rendered or CopyPixels is called, the image will be re-decoded.

-----Original Message-----
From: robertwl@nospam.microsoft.com
Posted At: Thursday, July 13, 2006 1:33 PM
Posted To: microsoft.public.windows.developer.winfx.avalon
Conversation: JPEG rotation without recompress
Subject: re: JPEG rotation without recompress


V
Closed Thread

Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
Screen rotation 180 degrees Count Vista General 14 08-29-2007 05:00 PM
Picture rotation problems ESJ Vista music pictures video 0 07-19-2007 04:18 PM
Automatic photo rotation? Mark Vista music pictures video 0 04-12-2007 02:22 AM
screen rotation Herm R.R. Vista General 2 02-21-2007 08:16 AM
3D Rotation Animation Jared Bienz Avalon 8 01-10-2006 03:53 PM








Vistax64.com is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media 2005-2008

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50