I’m looking for help determining why I can’t set the orientation before I save the image. No matter what numerical values I manually assign to the variable “$imageOrientation” the image always saves as landscape. I have portrait photos that I want to save in the original orientation, but they save as landscape. I tried setting the original image orientation and the compressed image orientation, but cannot figure out the syntax, some direction would be very appreciated.
<#
Name Value
---- -----
Rotate180FlipXY 0
RotateNoneFlipNone 0
Rotate90FlipNone 1
Rotate270FlipXY 1
Rotate180FlipNone 2
RotateNoneFlipXY 2
Rotate270FlipNone 3
Rotate90FlipXY 3
RotateNoneFlipX 4
Rotate180FlipY 4
Rotate90FlipX 5
Rotate270FlipY 5
Rotate180FlipX 6
RotateNoneFlipY 6
Rotate270FlipX 7
Rotate90FlipY 7
#>
$image = [Image]::FromFile("c:tempimage1.jpg");
$newImageName = "image1b.jpg";
[int32]$newWidth = [math]::Round($image.Width/3);
[int32]$newHeight = [math]::Round($image.Height/3);
$destination_rect = New-Object Rectangle 0, 0, $newWidth, $newHeight;
$imageOrientation = $image.GetPropertyItem(274).Value[0];
switch ($imageOrientation)
{
{ $imageOrientation -eq 0 } { $image.RotateFlip("Rotate180FlipXY"); $image.RotateFlip("RotateNoneFlipNone"); }
{ $imageOrientation -eq 1 } { $image.RotateFlip("Rotate90FlipNone"); $image.RotateFlip("Rotate270FlipXY"); }
{ $imageOrientation -eq 2 } { $image.RotateFlip("Rotate180FlipNone"); $image.RotateFlip("RotateNoneFlipXY"); }
{ $imageOrientation -eq 3 } { $image.RotateFlip("Rotate270FlipNone"); $image.RotateFlip("Rotate90FlipXY"); }
{ $imageOrientation -eq 4 } { $image.RotateFlip("RotateNoneFlipX"); $image.RotateFlip("Rotate180FlipY"); }
{ $imageOrientation -eq 5 } { $image.RotateFlip("Rotate90FlipX"); $image.RotateFlip("Rotate270FlipY"); }
{ $imageOrientation -eq 6 } { $image.RotateFlip("Rotate180FlipX"); $image.RotateFlip("RotateNoneFlipY"); }
{ $imageOrientation -eq 7 } { $image.RotateFlip("Rotate270FlipX"); $image.RotateFlip("Rotate90FlipY"); }
}
$destination_image = New-Object Bitmap $newWidth, $newHeight;
$destination_image.SetResolution($image.HorizontalResolution, $image.VerticalResolution);
$graphics = [Graphics]::FromImage($destination_image);
$graphics.CompositingMode = [Drawing2D.CompositingMode]::SourceCopy;
$graphics.CompositingQuality = [Drawing2D.CompositingQuality]::HighQuality;
$graphics.InterpolationMode = [Drawing2D.InterpolationMode]::HighQualityBicubic;
$graphics.SmoothingMode = [Drawing2D.SmoothingMode]::HighQuality;
$graphics.PixelOffsetMode = [Drawing2D.PixelOffsetMode]::HighQuality;
$wrapmode = [Imaging.ImageAttributes]::new();
$wrapmode.SetWrapMode([Drawing2D.WrapMode]::TileFlipXY);
$graphics.DrawImage($image, $destination_rect, 0, 0, $image.Width, $image.Height, [GraphicsUnit]::Pixel, $wrapmode);
switch ($imageOrientation)
{
{ $imageOrientation -eq 0 } { $destination_image.RotateFlip("Rotate180FlipXY"); $destination_image.RotateFlip("RotateNoneFlipNone"); }
{ $imageOrientation -eq 1 } { $destination_image.RotateFlip("Rotate90FlipNone"); $destination_image.RotateFlip("Rotate270FlipXY"); }
{ $imageOrientation -eq 2 } { $destination_image.RotateFlip("Rotate180FlipNone"); $destination_image.RotateFlip("RotateNoneFlipXY"); }
{ $imageOrientation -eq 3 } { $destination_image.RotateFlip("Rotate270FlipNone"); $destination_image.RotateFlip("Rotate90FlipXY"); }
{ $imageOrientation -eq 4 } { $destination_image.RotateFlip("RotateNoneFlipX"); $destination_image.RotateFlip("Rotate180FlipY"); }
{ $imageOrientation -eq 5 } { $destination_image.RotateFlip("Rotate90FlipX"); $destination_image.RotateFlip("Rotate270FlipY"); }
{ $imageOrientation -eq 6 } { $destination_image.RotateFlip("Rotate180FlipX"); $destination_image.RotateFlip("RotateNoneFlipY"); }
{ $imageOrientation -eq 7 } { $destination_image.RotateFlip("Rotate270FlipX"); $destination_image.RotateFlip("Rotate90FlipY"); }
}
$resizedImageFolder = "c:temp";
$destination_image.Save((Join-Path $resizedImageFolder $newImageName));