рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рди!
рдПрдХ рдЬреАрдЖрдИрдПрдл рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдХрд░
, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦреВрдВ рдФрд░ рдХреЛрдб рдХреЗ "рдореИрдк" рдХреЛ рджреЗрдЦреВрдВ?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ "рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдкрд┐рдХреНрд╕реЗрд▓ рд░рдЦрдиреЗ" рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕реНрдХреНрд╡реЗрд░рд┐рдВрдЧ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдпрдд рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ 129 = 11 * 12-3, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЦреБрдж рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдереЛрдбрд╝рд╛ рднрдпрд╛рдирдХ рдХреЛрдбpublic static ImageSize Generate(uint PixelsCount, double MaximumDeltaPercent=1f, uint MaximumAbsoluteDelta=10, double MaximumAspectRatio=1.77) { //check if this is empty image if (PixelsCount==0) return new ImageSize(1,1); //check if this is a square double sqrt = Math.Truncate(Math.Sqrt(PixelsCount)); if (Math.Pow(sqrt, 2) == PixelsCount) return new ImageSize((ushort)sqrt, (ushort) sqrt); // , AspectRatio - , . . if (PixelsCount<=10) MaximumAspectRatio = double.MaxValue; double percentdelta = PixelsCount/(MaximumDeltaPercent*100); uint height = (ushort) Math.Truncate(Math.Sqrt(PixelsCount)); uint width = (ushort) (height+1); while (width/(height*1.0f)<MaximumAspectRatio) { ulong Result = width*height; if (Result==PixelsCount) { if (width<=ushort.MaxValue && height<=ushort.MaxValue) { return new ImageSize((ushort) width, (ushort) height); } } if (Result>PixelsCount) { if ((Result-PixelsCount)<=percentdelta || Result-PixelsCount<=MaximumAbsoluteDelta) { if (width <= ushort.MaxValue && height <= ushort.MaxValue) { return new ImageSize((ushort) width, (ushort) height); } } height
рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдПрдХ рд╕реНрдЯреНрд░реАрдо рдпрд╛ рдлрд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╕реБрдВрджрд░ рдЪрд┐рддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдореА рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
рдореЗрд░реЗ рдорд┐рдиреА-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛрдб рд╣рд░реЗ рд░рдВрдЧ рдХреА рдЫрдк рдХреЗ рд╕рд╛рде рдФрд╕рдд рд╡рд░реНрджреА рдЧреНрд░реЗ рдкрд░ рд╣реИред рд▓реЗрдХрд┐рди рдзрд╛рд░реАрджрд╛рд░ред
Win.exe рд╕реЗ Explorer.exe рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдЬреАрдм рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмреАрдЪ рдореЗрдВ рдПрдХ рдХрд╛рд▓реА рдкрдЯреНрдЯреА рд╣реИред
рдЬреЛ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рд╕реНрдкрд╖реНрдЯ рд╣реИредрдЕрдВрдд рдореЗрдВ, рдЖрдЗрдХрди рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдореА рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рд╕реЗ Workqueue.c рдХреЛрдб рдиреАрд▓реЗ рд░рдВрдЧ рдХреЗ рдЫреАрдВрдЯреЗ рдХреЗ рд╕рд╛рде рдФрд╕рдд рд░реВрдк рд╕реЗ рдЧреНрд░реЗ рд╣реИред рд╕рдм рд╕рдм рдореЗрдВ, рдпрд╣ рдиреАрд░рд╕ рд▓рдЧрддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рд╕рдорд╛рди рд░реВрдк рд╕реЗ рднреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛!
рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕реНрд░реЛрддрд╕рдВрдХрд▓рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдордкреБрдирд╢реНрдЪ рдпрджрд┐ рдЖрдк рдЕрдЪрд╛рдирдХ рдПрдХ рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрддреНрдкрд╛рдж рдХреЛ рдПрдХ рд╢реЗрд╖ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрдВрджрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬрд╛рдирддреЗ рд╣реИрдВ - рдореИрдВ рдЖрдкрд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирддреА рдХрд░рддрд╛ рд╣реВрдВред