Click here to Skip to main content
15,898,222 members
Home / Discussions / C#
   

C#

 
GeneralRe: Adding reference in runtime Pin
Razizao17-Dec-07 4:40
Razizao17-Dec-07 4:40 
Generaldatagridview events Pin
arkiboys17-Dec-07 3:40
arkiboys17-Dec-07 3:40 
QuestionHow to resize .tiff image Pin
sher_azam17-Dec-07 1:24
sher_azam17-Dec-07 1:24 
AnswerRe: How to resize .tiff image Pin
Pete O'Hanlon17-Dec-07 2:01
mvePete O'Hanlon17-Dec-07 2:01 
GeneralRe: How to resize .tiff image Pin
sher_azam17-Dec-07 2:18
sher_azam17-Dec-07 2:18 
GeneralRe: How to resize .tiff image Pin
Pete O'Hanlon17-Dec-07 2:26
mvePete O'Hanlon17-Dec-07 2:26 
GeneralRe: How to resize .tiff image Pin
sher_azam17-Dec-07 19:35
sher_azam17-Dec-07 19:35 
AnswerRe: How to resize .tiff image Pin
Thomas-H.26-Nov-13 1:28
Thomas-H.26-Nov-13 1:28 
Load current tiff.
Iterate over every frame of your loaded tiff image and resize each frame.
C#
private Image ScaleImage(Size desiredSize, Image originalImage)
		{
			if (desiredSize.Height != originalImage.Height || desiredSize.Width != originalImage.Width) {

				// Changed jha 26.10.2011: Der nachfolgende Umweg über die Bitmap ermöglicht es uns, die Auflösung zu setzen.
				// Ansonsten ist die Auflösung immer 96 dpi.
				Bitmap bm = new Bitmap(desiredSize.Width, desiredSize.Height);
				bm.SetResolution(originalImage.HorizontalResolution, originalImage.VerticalResolution);
				Image scaledImage = bm;
				// Image scaledImage = new Bitmap(desiredSize.Width, desiredSize.Height);
				// End changed jha 26.10.2011

				//scaledImage = originalImage.GetThumbnailImage(desiredSize.Width, desiredSize.Height, null, IntPtr.Zero);

				using (Graphics g = Graphics.FromImage(scaledImage)) {

					// TODO ggf. je nach Konfiguration/Rechenleistung/Usersetting die Qualität der Skalierung setzen. Eventuell per ToolBar einstellbar!
					//float scaleFactor = (float)desiredSize.Height / (float)originalImage.Height;
					g.InterpolationMode = InterpolationMode.HighQualityBicubic; // GetQualitySetting(scaleFactor);
					// Changed THO 23.09.2011 wegen Internetartikel hinzugefügt
					// THO 04.06.2013 siehe auch dieser Url http://www.nathanaeljones.com/blog/2009/20-image-resizing-pitfalls
					g.SmoothingMode = SmoothingMode.HighQuality;
					g.CompositingQuality = CompositingQuality.HighQuality;
					g.PixelOffsetMode = PixelOffsetMode.HighQuality;
					// Changed THO 05.08.2013
					try {
						g.DrawImage(originalImage, 0, 0, desiredSize.Width, desiredSize.Height);
					}
					catch (OverflowException oe)
					{
						WriteLogMessage(LogLevel.Information, "OverflowException on Graphics.DrawImage - trying InterpolationMode with less quality.");
						g.InterpolationMode = InterpolationMode.Bicubic;
						g.DrawImage(originalImage, 0, 0, desiredSize.Width, desiredSize.Height);
					}
					//}
					//catch {
					//  g.DrawImage(originalImage, 0, 0, desiredSize.Width, desiredSize.Height);
					//}
					g.Flush();
				}

				return scaledImage;
			}

			return originalImage;
		}


Save this frame.

Now create a multipage tiff from all saved resized images. Depending on your needs (mixed color/bw frames) you might need different code. You could use a function like this one:

C#
public static void CreateMultiPage (string[] inputFiles, string targetFileName, bool useCCITT4Compression)
       {
           // zuerst ermitteln wir den richtigen Codec
           ImageCodecInfo codec = Helpers.GetEncoder (ImageFormat.Tiff);

           EncoderParameters encoderParams = useCCITT4Compression ? new EncoderParameters(2) :  new EncoderParameters(1);
           encoderParams.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.SaveFlag, (long)EncoderValue.MultiFrame);
           if (useCCITT4Compression)
               encoderParams.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.Compression, (long)EncoderValue.CompressionCCITT4);

           EncoderParameters encoderParamsAddFrame = useCCITT4Compression ? new EncoderParameters(3) :  new EncoderParameters(2);
           encoderParamsAddFrame.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.SaveFlag, (long)EncoderValue.MultiFrame);
           encoderParamsAddFrame.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.SaveFlag, (long)EncoderValue.FrameDimensionPage);
           if (useCCITT4Compression)
               encoderParamsAddFrame.Param[2] = new EncoderParameter(System.Drawing.Imaging.Encoder.Compression, (long)EncoderValue.CompressionCCITT4);

           // Create initial image
           using (Image multipageTIFF = Image.FromFile(inputFiles[0]))
           {
               // Save as new Image
               multipageTIFF.Save(targetFileName, codec, encoderParams);

               // add frame
               for (int i = 1; i < inputFiles.Length; i++)
               {
                   using (Image img = Image.FromFile(inputFiles[i]))
                   {
                       multipageTIFF.SaveAdd(img, encoderParamsAddFrame);
                   }
                   // ggf. GC.Collect();
               }

               EncoderParameters ep = new EncoderParameters(1);
               ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.SaveFlag, (long)EncoderValue.Flush);
               multipageTIFF.SaveAdd(ep);
           }
       }

GeneralIDocHostShowUI Problem - C# Webbrowser Pin
gopher_uk17-Dec-07 1:17
gopher_uk17-Dec-07 1:17 
GeneralPassword Field Pin
anupamwb17-Dec-07 0:34
anupamwb17-Dec-07 0:34 
GeneralRe: Password Field Pin
Vasudevan Deepak Kumar17-Dec-07 0:38
Vasudevan Deepak Kumar17-Dec-07 0:38 
GeneralRe: Password Field Pin
Abhijit Jana17-Dec-07 2:53
professionalAbhijit Jana17-Dec-07 2:53 
Generaldatagridview Pin
arkiboys17-Dec-07 0:32
arkiboys17-Dec-07 0:32 
GeneralMac address ......... Pin
sindhutiwari16-Dec-07 23:56
sindhutiwari16-Dec-07 23:56 
GeneralRe: Mac address ......... Pin
Vasudevan Deepak Kumar17-Dec-07 0:40
Vasudevan Deepak Kumar17-Dec-07 0:40 
GeneralRe: Mac address ......... Pin
sindhutiwari17-Dec-07 1:17
sindhutiwari17-Dec-07 1:17 
GeneralRe: Mac address ......... Pin
Colin Angus Mackay17-Dec-07 1:50
Colin Angus Mackay17-Dec-07 1:50 
GeneralRe: Mac address ......... Pin
sindhutiwari17-Dec-07 2:00
sindhutiwari17-Dec-07 2:00 
GeneralRe: Mac address ......... Pin
m@u17-Dec-07 2:24
m@u17-Dec-07 2:24 
GeneralRe: Mac address ......... [modified] Pin
DaveyM6917-Dec-07 9:32
professionalDaveyM6917-Dec-07 9:32 
Generalwriting excel cell values to generic list using c# Pin
ramyanaidu16-Dec-07 23:42
ramyanaidu16-Dec-07 23:42 
GeneralRe: writing excel cell values to generic list using c# [modified] Pin
Malcolm Smart17-Dec-07 0:21
Malcolm Smart17-Dec-07 0:21 
Generalvisual basic --&gt; C# help needed Pin
tasumisra16-Dec-07 23:42
tasumisra16-Dec-07 23:42 
GeneralRe: visual basic --&gt; C# help needed Pin
Malcolm Smart17-Dec-07 0:18
Malcolm Smart17-Dec-07 0:18 
JokeRe: visual basic --&gt; C# help needed Pin
tasumisra17-Dec-07 0:23
tasumisra17-Dec-07 0:23 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.