IconCodecTest.cs 108 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054
  1. //
  2. // ICO Codec class testing unit
  3. //
  4. // Authors:
  5. // Jordi Mas i Hernàndez ([email protected])
  6. // Sebastien Pouliot <[email protected]>
  7. //
  8. // Copyright (C) 2006-2007 Novell, Inc (http://www.novell.com)
  9. //
  10. // Permission is hereby granted, free of charge, to any person obtaining
  11. // a copy of this software and associated documentation files (the
  12. // "Software"), to deal in the Software without restriction, including
  13. // without limitation the rights to use, copy, modify, merge, publish,
  14. // distribute, sublicense, and/or sell copies of the Software, and to
  15. // permit persons to whom the Software is furnished to do so, subject to
  16. // the following conditions:
  17. //
  18. // The above copyright notice and this permission notice shall be
  19. // included in all copies or substantial portions of the Software.
  20. //
  21. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  22. // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  23. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  24. // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  25. // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  26. // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  27. // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  28. //
  29. using System;
  30. using System.Drawing;
  31. using System.Drawing.Imaging;
  32. using System.IO;
  33. using System.Security.Permissions;
  34. using System.Text;
  35. using NUnit.Framework;
  36. namespace MonoTests.System.Drawing.Imaging {
  37. [TestFixture]
  38. [SecurityPermission (SecurityAction.Deny, UnmanagedCode = true)]
  39. public class IconCodecTest {
  40. /* Get suffix to add to the filename */
  41. internal string getOutSufix ()
  42. {
  43. string s;
  44. int p = (int) Environment.OSVersion.Platform;
  45. if ((p == 4) || (p == 128))
  46. s = "-unix";
  47. else
  48. s = "-windows";
  49. if (Type.GetType ("Mono.Runtime", false) == null)
  50. s += "-msnet";
  51. else
  52. s += "-mono";
  53. return s;
  54. }
  55. /* Get the input directory depending on the runtime*/
  56. internal string getInFile (string file)
  57. {
  58. string sRslt = Path.GetFullPath ("../System.Drawing/" + file);
  59. if (!File.Exists (sRslt))
  60. sRslt = "Test/System.Drawing/" + file;
  61. return sRslt;
  62. }
  63. [Test]
  64. public void Image16 ()
  65. {
  66. string sInFile = getInFile ("bitmaps/16x16x16.ico");
  67. using (Image image = Image.FromFile (sInFile)) {
  68. Assert.IsTrue (image.RawFormat.Equals (ImageFormat.Icon), "Icon");
  69. // note that image is "promoted" to 32bits
  70. Assert.AreEqual (PixelFormat.Format32bppArgb, image.PixelFormat);
  71. Assert.AreEqual (73746, image.Flags, "bmp.Flags");
  72. Assert.AreEqual (16, image.Palette.Entries.Length, "Palette");
  73. using (Bitmap bmp = new Bitmap (image)) {
  74. Assert.IsTrue (bmp.RawFormat.Equals (ImageFormat.MemoryBmp), "Icon");
  75. Assert.AreEqual (PixelFormat.Format32bppArgb, bmp.PixelFormat);
  76. Assert.AreEqual (2, bmp.Flags, "bmp.Flags");
  77. Assert.AreEqual (0, bmp.Palette.Entries.Length, "Palette");
  78. }
  79. }
  80. }
  81. // simley.ico has 48x48, 32x32 and 16x16 images (in that order)
  82. [Test]
  83. public void Bitmap16Features ()
  84. {
  85. string sInFile = getInFile ("bitmaps/smiley.ico");
  86. using (Bitmap bmp = new Bitmap (sInFile)) {
  87. GraphicsUnit unit = GraphicsUnit.World;
  88. RectangleF rect = bmp.GetBounds (ref unit);
  89. Assert.IsTrue (bmp.RawFormat.Equals (ImageFormat.Icon), "Icon");
  90. // note that image is "promoted" to 32bits
  91. Assert.AreEqual (PixelFormat.Format32bppArgb, bmp.PixelFormat);
  92. Assert.AreEqual (73746, bmp.Flags, "bmp.Flags");
  93. Assert.AreEqual (16, bmp.Palette.Entries.Length, "Palette");
  94. Assert.AreEqual (-16777216, bmp.Palette.Entries[0].ToArgb (), "Palette#0");
  95. Assert.AreEqual (-16777216, bmp.Palette.Entries[1].ToArgb (), "Palette#1");
  96. Assert.AreEqual (-16744448, bmp.Palette.Entries[2].ToArgb (), "Palette#2");
  97. Assert.AreEqual (-8355840, bmp.Palette.Entries[3].ToArgb (), "Palette#3");
  98. Assert.AreEqual (-16777088, bmp.Palette.Entries[4].ToArgb (), "Palette#4");
  99. Assert.AreEqual (-8388480, bmp.Palette.Entries[5].ToArgb (), "Palette#5");
  100. Assert.AreEqual (-16744320, bmp.Palette.Entries[6].ToArgb (), "Palette#6");
  101. Assert.AreEqual (-4144960, bmp.Palette.Entries[7].ToArgb (), "Palette#7");
  102. Assert.AreEqual (-8355712, bmp.Palette.Entries[8].ToArgb (), "Palette#8");
  103. Assert.AreEqual (-65536, bmp.Palette.Entries[9].ToArgb (), "Palette#9");
  104. Assert.AreEqual (-16711936, bmp.Palette.Entries[10].ToArgb (), "Palette#10");
  105. Assert.AreEqual (-256, bmp.Palette.Entries[11].ToArgb (), "Palette#11");
  106. Assert.AreEqual (-16776961, bmp.Palette.Entries[12].ToArgb (), "Palette#12");
  107. Assert.AreEqual (-65281, bmp.Palette.Entries[13].ToArgb (), "Palette#13");
  108. Assert.AreEqual (-16711681, bmp.Palette.Entries[14].ToArgb (), "Palette#14");
  109. Assert.AreEqual (-1, bmp.Palette.Entries[15].ToArgb (), "Palette#15");
  110. Assert.AreEqual (1, bmp.FrameDimensionsList.Length, "FrameDimensionsList");
  111. Assert.AreEqual (0, bmp.PropertyIdList.Length, "PropertyIdList");
  112. Assert.AreEqual (0, bmp.PropertyItems.Length, "PropertyItems");
  113. #if NET_2_0
  114. Assert.IsNull (bmp.Tag, "Tag");
  115. #endif
  116. Assert.AreEqual (96.0f, bmp.HorizontalResolution, "HorizontalResolution");
  117. Assert.AreEqual (96.0f, bmp.VerticalResolution, "VerticalResolution");
  118. Assert.AreEqual (16, bmp.Width, "bmp.Width");
  119. Assert.AreEqual (16, bmp.Height, "bmp.Height");
  120. Assert.AreEqual (0, rect.X, "rect.X");
  121. Assert.AreEqual (0, rect.Y, "rect.Y");
  122. Assert.AreEqual (16, rect.Width, "rect.Width");
  123. Assert.AreEqual (16, rect.Height, "rect.Height");
  124. Assert.AreEqual (16, bmp.Size.Width, "bmp.Size.Width");
  125. Assert.AreEqual (16, bmp.Size.Height, "bmp.Size.Height");
  126. }
  127. }
  128. [Test]
  129. public void Bitmap16Pixels ()
  130. {
  131. string sInFile = getInFile ("bitmaps/smiley.ico");
  132. using (Bitmap bmp = new Bitmap (sInFile)) {
  133. #if false
  134. for (int x = 0; x < bmp.Width; x += 4) {
  135. for (int y = 0; y < bmp.Height; y += 4)
  136. Console.WriteLine ("\t\t\t\tAssert.AreEqual ({0}, bmp.GetPixel ({1}, {2}).ToArgb (), \"{1},{2}\");", bmp.GetPixel (x, y).ToArgb (), x, y);
  137. }
  138. #else
  139. // sampling values from a well known bitmap
  140. Assert.AreEqual (0, bmp.GetPixel (0, 0).ToArgb (), "0,0");
  141. Assert.AreEqual (0, bmp.GetPixel (0, 4).ToArgb (), "0,4");
  142. Assert.AreEqual (0, bmp.GetPixel (0, 8).ToArgb (), "0,8");
  143. Assert.AreEqual (0, bmp.GetPixel (0, 12).ToArgb (), "0,12");
  144. Assert.AreEqual (0, bmp.GetPixel (4, 0).ToArgb (), "4,0");
  145. Assert.AreEqual (-256, bmp.GetPixel (4, 4).ToArgb (), "4,4");
  146. Assert.AreEqual (-256, bmp.GetPixel (4, 8).ToArgb (), "4,8");
  147. Assert.AreEqual (-8355840, bmp.GetPixel (4, 12).ToArgb (), "4,12");
  148. Assert.AreEqual (0, bmp.GetPixel (8, 0).ToArgb (), "8,0");
  149. Assert.AreEqual (-256, bmp.GetPixel (8, 4).ToArgb (), "8,4");
  150. Assert.AreEqual (-256, bmp.GetPixel (8, 8).ToArgb (), "8,8");
  151. Assert.AreEqual (-256, bmp.GetPixel (8, 12).ToArgb (), "8,12");
  152. Assert.AreEqual (0, bmp.GetPixel (12, 0).ToArgb (), "12,0");
  153. Assert.AreEqual (0, bmp.GetPixel (12, 4).ToArgb (), "12,4");
  154. Assert.AreEqual (-8355840, bmp.GetPixel (12, 8).ToArgb (), "12,8");
  155. Assert.AreEqual (0, bmp.GetPixel (12, 12).ToArgb (), "12,12");
  156. #endif
  157. }
  158. }
  159. [Test]
  160. [Category ("NotWorking")]
  161. public void Bitmat16Data ()
  162. {
  163. string sInFile = getInFile ("bitmaps/smiley.ico");
  164. using (Bitmap bmp = new Bitmap (sInFile)) {
  165. BitmapData data = bmp.LockBits (new Rectangle (0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
  166. try {
  167. Assert.AreEqual (bmp.Height, data.Height, "Height");
  168. Assert.AreEqual (bmp.Width, data.Width, "Width");
  169. Assert.AreEqual (PixelFormat.Format24bppRgb, data.PixelFormat, "PixelFormat");
  170. int size = data.Height * data.Stride;
  171. unsafe {
  172. byte* scan = (byte*) data.Scan0;
  173. #if false
  174. // 13 is prime (so we're not affected by a recurring pattern)
  175. for (int p = 0; p < size; p += 13) {
  176. Console.WriteLine ("\t\t\t\t\t\tAssert.AreEqual ({0}, *(scan + {1}), \"{1}\");", *(scan + p), p);
  177. }
  178. #else
  179. // sampling values from a well known bitmap
  180. Assert.AreEqual (0, *(scan + 0), "0");
  181. Assert.AreEqual (0, *(scan + 13), "13");
  182. Assert.AreEqual (0, *(scan + 26), "26");
  183. Assert.AreEqual (0, *(scan + 39), "39");
  184. Assert.AreEqual (0, *(scan + 52), "52");
  185. Assert.AreEqual (0, *(scan + 65), "65");
  186. Assert.AreEqual (0, *(scan + 78), "78");
  187. Assert.AreEqual (0, *(scan + 91), "91");
  188. Assert.AreEqual (0, *(scan + 104), "104");
  189. Assert.AreEqual (0, *(scan + 117), "117");
  190. Assert.AreEqual (0, *(scan + 130), "130");
  191. Assert.AreEqual (0, *(scan + 143), "143");
  192. Assert.AreEqual (0, *(scan + 156), "156");
  193. Assert.AreEqual (255, *(scan + 169), "169");
  194. Assert.AreEqual (0, *(scan + 182), "182");
  195. Assert.AreEqual (0, *(scan + 195), "195");
  196. Assert.AreEqual (255, *(scan + 208), "208");
  197. Assert.AreEqual (255, *(scan + 221), "221");
  198. Assert.AreEqual (0, *(scan + 234), "234");
  199. Assert.AreEqual (128, *(scan + 247), "247");
  200. Assert.AreEqual (0, *(scan + 260), "260");
  201. Assert.AreEqual (0, *(scan + 273), "273");
  202. Assert.AreEqual (0, *(scan + 286), "286");
  203. Assert.AreEqual (255, *(scan + 299), "299");
  204. Assert.AreEqual (0, *(scan + 312), "312");
  205. Assert.AreEqual (128, *(scan + 325), "325");
  206. Assert.AreEqual (0, *(scan + 338), "338");
  207. Assert.AreEqual (0, *(scan + 351), "351");
  208. Assert.AreEqual (255, *(scan + 364), "364");
  209. Assert.AreEqual (0, *(scan + 377), "377");
  210. Assert.AreEqual (0, *(scan + 390), "390");
  211. Assert.AreEqual (255, *(scan + 403), "403");
  212. Assert.AreEqual (255, *(scan + 416), "416");
  213. Assert.AreEqual (0, *(scan + 429), "429");
  214. Assert.AreEqual (255, *(scan + 442), "442");
  215. Assert.AreEqual (0, *(scan + 455), "455");
  216. Assert.AreEqual (0, *(scan + 468), "468");
  217. Assert.AreEqual (0, *(scan + 481), "481");
  218. Assert.AreEqual (255, *(scan + 494), "494");
  219. Assert.AreEqual (0, *(scan + 507), "507");
  220. Assert.AreEqual (0, *(scan + 520), "520");
  221. Assert.AreEqual (0, *(scan + 533), "533");
  222. Assert.AreEqual (0, *(scan + 546), "546");
  223. Assert.AreEqual (255, *(scan + 559), "559");
  224. Assert.AreEqual (0, *(scan + 572), "572");
  225. Assert.AreEqual (0, *(scan + 585), "585");
  226. Assert.AreEqual (255, *(scan + 598), "598");
  227. Assert.AreEqual (0, *(scan + 611), "611");
  228. Assert.AreEqual (0, *(scan + 624), "624");
  229. Assert.AreEqual (0, *(scan + 637), "637");
  230. Assert.AreEqual (128, *(scan + 650), "650");
  231. Assert.AreEqual (0, *(scan + 663), "663");
  232. Assert.AreEqual (0, *(scan + 676), "676");
  233. Assert.AreEqual (0, *(scan + 689), "689");
  234. Assert.AreEqual (0, *(scan + 702), "702");
  235. Assert.AreEqual (0, *(scan + 715), "715");
  236. Assert.AreEqual (0, *(scan + 728), "728");
  237. Assert.AreEqual (0, *(scan + 741), "741");
  238. Assert.AreEqual (0, *(scan + 754), "754");
  239. Assert.AreEqual (0, *(scan + 767), "767");
  240. #endif
  241. }
  242. }
  243. finally {
  244. bmp.UnlockBits (data);
  245. }
  246. }
  247. }
  248. // VisualPng.ico only has a 32x32 size available
  249. [Test]
  250. public void Bitmap32Features ()
  251. {
  252. string sInFile = getInFile ("bitmaps/VisualPng.ico");
  253. using (Bitmap bmp = new Bitmap (sInFile)) {
  254. GraphicsUnit unit = GraphicsUnit.World;
  255. RectangleF rect = bmp.GetBounds (ref unit);
  256. Assert.IsTrue (bmp.RawFormat.Equals (ImageFormat.Icon), "Icon");
  257. Assert.AreEqual (PixelFormat.Format32bppArgb, bmp.PixelFormat);
  258. Assert.AreEqual (73746, bmp.Flags, "bmp.Flags");
  259. Assert.AreEqual (16, bmp.Palette.Entries.Length, "Palette");
  260. Assert.AreEqual (-16777216, bmp.Palette.Entries[0].ToArgb (), "Palette#0");
  261. Assert.AreEqual (-8388608, bmp.Palette.Entries[1].ToArgb (), "Palette#1");
  262. Assert.AreEqual (-16744448, bmp.Palette.Entries[2].ToArgb (), "Palette#2");
  263. Assert.AreEqual (-8355840, bmp.Palette.Entries[3].ToArgb (), "Palette#3");
  264. Assert.AreEqual (-16777088, bmp.Palette.Entries[4].ToArgb (), "Palette#4");
  265. Assert.AreEqual (-8388480, bmp.Palette.Entries[5].ToArgb (), "Palette#5");
  266. Assert.AreEqual (-16744320, bmp.Palette.Entries[6].ToArgb (), "Palette#6");
  267. Assert.AreEqual (-4144960, bmp.Palette.Entries[7].ToArgb (), "Palette#7");
  268. Assert.AreEqual (-8355712, bmp.Palette.Entries[8].ToArgb (), "Palette#8");
  269. Assert.AreEqual (-65536, bmp.Palette.Entries[9].ToArgb (), "Palette#9");
  270. Assert.AreEqual (-16711936, bmp.Palette.Entries[10].ToArgb (), "Palette#10");
  271. Assert.AreEqual (-256, bmp.Palette.Entries[11].ToArgb (), "Palette#11");
  272. Assert.AreEqual (-16776961, bmp.Palette.Entries[12].ToArgb (), "Palette#12");
  273. Assert.AreEqual (-65281, bmp.Palette.Entries[13].ToArgb (), "Palette#13");
  274. Assert.AreEqual (-16711681, bmp.Palette.Entries[14].ToArgb (), "Palette#14");
  275. Assert.AreEqual (-1, bmp.Palette.Entries[15].ToArgb (), "Palette#15");
  276. Assert.AreEqual (1, bmp.FrameDimensionsList.Length, "FrameDimensionsList");
  277. Assert.AreEqual (0, bmp.PropertyIdList.Length, "PropertyIdList");
  278. Assert.AreEqual (0, bmp.PropertyItems.Length, "PropertyItems");
  279. #if NET_2_0
  280. Assert.IsNull (bmp.Tag, "Tag");
  281. #endif
  282. Assert.AreEqual (96.0f, bmp.HorizontalResolution, "HorizontalResolution");
  283. Assert.AreEqual (96.0f, bmp.VerticalResolution, "VerticalResolution");
  284. Assert.AreEqual (32, bmp.Width, "bmp.Width");
  285. Assert.AreEqual (32, bmp.Height, "bmp.Height");
  286. Assert.AreEqual (0, rect.X, "rect.X");
  287. Assert.AreEqual (0, rect.Y, "rect.Y");
  288. Assert.AreEqual (32, rect.Width, "rect.Width");
  289. Assert.AreEqual (32, rect.Height, "rect.Height");
  290. Assert.AreEqual (32, bmp.Size.Width, "bmp.Size.Width");
  291. Assert.AreEqual (32, bmp.Size.Height, "bmp.Size.Height");
  292. }
  293. }
  294. [Test]
  295. public void Bitmap32Pixels ()
  296. {
  297. string sInFile = getInFile ("bitmaps/VisualPng.ico");
  298. using (Bitmap bmp = new Bitmap (sInFile)) {
  299. #if false
  300. for (int x = 0; x < bmp.Width; x += 4) {
  301. for (int y = 0; y < bmp.Height; y += 4)
  302. Console.WriteLine ("\t\t\t\tAssert.AreEqual ({0}, bmp.GetPixel ({1}, {2}).ToArgb (), \"{1},{2}\");", bmp.GetPixel (x, y).ToArgb (), x, y);
  303. }
  304. #else
  305. // sampling values from a well known bitmap
  306. Assert.AreEqual (0, bmp.GetPixel (0, 0).ToArgb (), "0,0");
  307. Assert.AreEqual (-8388608, bmp.GetPixel (0, 4).ToArgb (), "0,4");
  308. Assert.AreEqual (0, bmp.GetPixel (0, 8).ToArgb (), "0,8");
  309. Assert.AreEqual (0, bmp.GetPixel (0, 12).ToArgb (), "0,12");
  310. Assert.AreEqual (0, bmp.GetPixel (0, 16).ToArgb (), "0,16");
  311. Assert.AreEqual (0, bmp.GetPixel (0, 20).ToArgb (), "0,20");
  312. Assert.AreEqual (0, bmp.GetPixel (0, 24).ToArgb (), "0,24");
  313. Assert.AreEqual (0, bmp.GetPixel (0, 28).ToArgb (), "0,28");
  314. Assert.AreEqual (0, bmp.GetPixel (4, 0).ToArgb (), "4,0");
  315. Assert.AreEqual (0, bmp.GetPixel (4, 4).ToArgb (), "4,4");
  316. Assert.AreEqual (0, bmp.GetPixel (4, 8).ToArgb (), "4,8");
  317. Assert.AreEqual (0, bmp.GetPixel (4, 12).ToArgb (), "4,12");
  318. Assert.AreEqual (0, bmp.GetPixel (4, 16).ToArgb (), "4,16");
  319. Assert.AreEqual (0, bmp.GetPixel (4, 20).ToArgb (), "4,20");
  320. Assert.AreEqual (0, bmp.GetPixel (4, 24).ToArgb (), "4,24");
  321. Assert.AreEqual (0, bmp.GetPixel (4, 28).ToArgb (), "4,28");
  322. Assert.AreEqual (0, bmp.GetPixel (8, 0).ToArgb (), "8,0");
  323. Assert.AreEqual (0, bmp.GetPixel (8, 4).ToArgb (), "8,4");
  324. Assert.AreEqual (0, bmp.GetPixel (8, 8).ToArgb (), "8,8");
  325. Assert.AreEqual (0, bmp.GetPixel (8, 12).ToArgb (), "8,12");
  326. Assert.AreEqual (0, bmp.GetPixel (8, 16).ToArgb (), "8,16");
  327. Assert.AreEqual (-65536, bmp.GetPixel (8, 20).ToArgb (), "8,20");
  328. Assert.AreEqual (0, bmp.GetPixel (8, 24).ToArgb (), "8,24");
  329. Assert.AreEqual (0, bmp.GetPixel (8, 28).ToArgb (), "8,28");
  330. Assert.AreEqual (0, bmp.GetPixel (12, 0).ToArgb (), "12,0");
  331. Assert.AreEqual (0, bmp.GetPixel (12, 4).ToArgb (), "12,4");
  332. Assert.AreEqual (-8388608, bmp.GetPixel (12, 8).ToArgb (), "12,8");
  333. Assert.AreEqual (0, bmp.GetPixel (12, 12).ToArgb (), "12,12");
  334. Assert.AreEqual (0, bmp.GetPixel (12, 16).ToArgb (), "12,16");
  335. Assert.AreEqual (-65536, bmp.GetPixel (12, 20).ToArgb (), "12,20");
  336. Assert.AreEqual (0, bmp.GetPixel (12, 24).ToArgb (), "12,24");
  337. Assert.AreEqual (0, bmp.GetPixel (12, 28).ToArgb (), "12,28");
  338. Assert.AreEqual (0, bmp.GetPixel (16, 0).ToArgb (), "16,0");
  339. Assert.AreEqual (0, bmp.GetPixel (16, 4).ToArgb (), "16,4");
  340. Assert.AreEqual (0, bmp.GetPixel (16, 8).ToArgb (), "16,8");
  341. Assert.AreEqual (0, bmp.GetPixel (16, 12).ToArgb (), "16,12");
  342. Assert.AreEqual (0, bmp.GetPixel (16, 16).ToArgb (), "16,16");
  343. Assert.AreEqual (0, bmp.GetPixel (16, 20).ToArgb (), "16,20");
  344. Assert.AreEqual (-65536, bmp.GetPixel (16, 24).ToArgb (), "16,24");
  345. Assert.AreEqual (0, bmp.GetPixel (16, 28).ToArgb (), "16,28");
  346. Assert.AreEqual (0, bmp.GetPixel (20, 0).ToArgb (), "20,0");
  347. Assert.AreEqual (0, bmp.GetPixel (20, 4).ToArgb (), "20,4");
  348. Assert.AreEqual (-8388608, bmp.GetPixel (20, 8).ToArgb (), "20,8");
  349. Assert.AreEqual (0, bmp.GetPixel (20, 12).ToArgb (), "20,12");
  350. Assert.AreEqual (0, bmp.GetPixel (20, 16).ToArgb (), "20,16");
  351. Assert.AreEqual (0, bmp.GetPixel (20, 20).ToArgb (), "20,20");
  352. Assert.AreEqual (0, bmp.GetPixel (20, 24).ToArgb (), "20,24");
  353. Assert.AreEqual (0, bmp.GetPixel (20, 28).ToArgb (), "20,28");
  354. Assert.AreEqual (0, bmp.GetPixel (24, 0).ToArgb (), "24,0");
  355. Assert.AreEqual (0, bmp.GetPixel (24, 4).ToArgb (), "24,4");
  356. Assert.AreEqual (-16777216, bmp.GetPixel (24, 8).ToArgb (), "24,8");
  357. Assert.AreEqual (0, bmp.GetPixel (24, 12).ToArgb (), "24,12");
  358. Assert.AreEqual (0, bmp.GetPixel (24, 16).ToArgb (), "24,16");
  359. Assert.AreEqual (0, bmp.GetPixel (24, 20).ToArgb (), "24,20");
  360. Assert.AreEqual (0, bmp.GetPixel (24, 24).ToArgb (), "24,24");
  361. Assert.AreEqual (0, bmp.GetPixel (24, 28).ToArgb (), "24,28");
  362. Assert.AreEqual (0, bmp.GetPixel (28, 0).ToArgb (), "28,0");
  363. Assert.AreEqual (0, bmp.GetPixel (28, 4).ToArgb (), "28,4");
  364. Assert.AreEqual (0, bmp.GetPixel (28, 8).ToArgb (), "28,8");
  365. Assert.AreEqual (0, bmp.GetPixel (28, 12).ToArgb (), "28,12");
  366. Assert.AreEqual (0, bmp.GetPixel (28, 16).ToArgb (), "28,16");
  367. Assert.AreEqual (0, bmp.GetPixel (28, 20).ToArgb (), "28,20");
  368. Assert.AreEqual (-8388608, bmp.GetPixel (28, 24).ToArgb (), "28,24");
  369. Assert.AreEqual (0, bmp.GetPixel (28, 28).ToArgb (), "28,28");
  370. #endif
  371. }
  372. }
  373. [Test]
  374. [Category ("NotWorking")]
  375. public void Bitmat32Data ()
  376. {
  377. string sInFile = getInFile ("bitmaps/VisualPng.ico");
  378. using (Bitmap bmp = new Bitmap (sInFile)) {
  379. BitmapData data = bmp.LockBits (new Rectangle (0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
  380. try {
  381. Assert.AreEqual (bmp.Height, data.Height, "Height");
  382. Assert.AreEqual (bmp.Width, data.Width, "Width");
  383. Assert.AreEqual (PixelFormat.Format24bppRgb, data.PixelFormat, "PixelFormat");
  384. int size = data.Height * data.Stride;
  385. unsafe {
  386. byte* scan = (byte*) data.Scan0;
  387. #if false
  388. // 13 is prime (so we're not affected by a recurring pattern)
  389. for (int p = 0; p < size; p += 13) {
  390. Console.WriteLine ("\t\t\t\t\t\tAssert.AreEqual ({0}, *(scan + {1}), \"{1}\");", *(scan + p), p);
  391. }
  392. #else
  393. // sampling values from a well known bitmap
  394. Assert.AreEqual (0, *(scan + 0), "0");
  395. Assert.AreEqual (0, *(scan + 13), "13");
  396. Assert.AreEqual (0, *(scan + 26), "26");
  397. Assert.AreEqual (0, *(scan + 39), "39");
  398. Assert.AreEqual (0, *(scan + 52), "52");
  399. Assert.AreEqual (0, *(scan + 65), "65");
  400. Assert.AreEqual (0, *(scan + 78), "78");
  401. Assert.AreEqual (0, *(scan + 91), "91");
  402. Assert.AreEqual (0, *(scan + 104), "104");
  403. Assert.AreEqual (0, *(scan + 117), "117");
  404. Assert.AreEqual (0, *(scan + 130), "130");
  405. Assert.AreEqual (0, *(scan + 143), "143");
  406. Assert.AreEqual (0, *(scan + 156), "156");
  407. Assert.AreEqual (0, *(scan + 169), "169");
  408. Assert.AreEqual (0, *(scan + 182), "182");
  409. Assert.AreEqual (0, *(scan + 195), "195");
  410. Assert.AreEqual (0, *(scan + 208), "208");
  411. Assert.AreEqual (0, *(scan + 221), "221");
  412. Assert.AreEqual (0, *(scan + 234), "234");
  413. Assert.AreEqual (0, *(scan + 247), "247");
  414. Assert.AreEqual (0, *(scan + 260), "260");
  415. Assert.AreEqual (0, *(scan + 273), "273");
  416. Assert.AreEqual (0, *(scan + 286), "286");
  417. Assert.AreEqual (0, *(scan + 299), "299");
  418. Assert.AreEqual (0, *(scan + 312), "312");
  419. Assert.AreEqual (0, *(scan + 325), "325");
  420. Assert.AreEqual (0, *(scan + 338), "338");
  421. Assert.AreEqual (0, *(scan + 351), "351");
  422. Assert.AreEqual (0, *(scan + 364), "364");
  423. Assert.AreEqual (0, *(scan + 377), "377");
  424. Assert.AreEqual (0, *(scan + 390), "390");
  425. Assert.AreEqual (0, *(scan + 403), "403");
  426. Assert.AreEqual (0, *(scan + 416), "416");
  427. Assert.AreEqual (0, *(scan + 429), "429");
  428. Assert.AreEqual (0, *(scan + 442), "442");
  429. Assert.AreEqual (0, *(scan + 455), "455");
  430. Assert.AreEqual (0, *(scan + 468), "468");
  431. Assert.AreEqual (0, *(scan + 481), "481");
  432. Assert.AreEqual (128, *(scan + 494), "494");
  433. Assert.AreEqual (0, *(scan + 507), "507");
  434. Assert.AreEqual (0, *(scan + 520), "520");
  435. Assert.AreEqual (0, *(scan + 533), "533");
  436. Assert.AreEqual (0, *(scan + 546), "546");
  437. Assert.AreEqual (0, *(scan + 559), "559");
  438. Assert.AreEqual (128, *(scan + 572), "572");
  439. Assert.AreEqual (0, *(scan + 585), "585");
  440. Assert.AreEqual (0, *(scan + 598), "598");
  441. Assert.AreEqual (0, *(scan + 611), "611");
  442. Assert.AreEqual (0, *(scan + 624), "624");
  443. Assert.AreEqual (0, *(scan + 637), "637");
  444. Assert.AreEqual (128, *(scan + 650), "650");
  445. Assert.AreEqual (0, *(scan + 663), "663");
  446. Assert.AreEqual (0, *(scan + 676), "676");
  447. Assert.AreEqual (0, *(scan + 689), "689");
  448. Assert.AreEqual (0, *(scan + 702), "702");
  449. Assert.AreEqual (0, *(scan + 715), "715");
  450. Assert.AreEqual (0, *(scan + 728), "728");
  451. Assert.AreEqual (0, *(scan + 741), "741");
  452. Assert.AreEqual (0, *(scan + 754), "754");
  453. Assert.AreEqual (0, *(scan + 767), "767");
  454. Assert.AreEqual (0, *(scan + 780), "780");
  455. Assert.AreEqual (0, *(scan + 793), "793");
  456. Assert.AreEqual (128, *(scan + 806), "806");
  457. Assert.AreEqual (0, *(scan + 819), "819");
  458. Assert.AreEqual (0, *(scan + 832), "832");
  459. Assert.AreEqual (128, *(scan + 845), "845");
  460. Assert.AreEqual (0, *(scan + 858), "858");
  461. Assert.AreEqual (0, *(scan + 871), "871");
  462. Assert.AreEqual (0, *(scan + 884), "884");
  463. #endif
  464. }
  465. }
  466. finally {
  467. bmp.UnlockBits (data);
  468. }
  469. }
  470. }
  471. // 48x48x1.ico only has a 48x48 size available
  472. [Test]
  473. public void Bitmap48Features ()
  474. {
  475. string sInFile = getInFile ("bitmaps/48x48x1.ico");
  476. using (Bitmap bmp = new Bitmap (sInFile)) {
  477. GraphicsUnit unit = GraphicsUnit.World;
  478. RectangleF rect = bmp.GetBounds (ref unit);
  479. Assert.IsTrue (bmp.RawFormat.Equals (ImageFormat.Icon), "Icon");
  480. Assert.AreEqual (PixelFormat.Format32bppArgb, bmp.PixelFormat);
  481. Assert.AreEqual (73746, bmp.Flags, "bmp.Flags");
  482. Assert.AreEqual (2, bmp.Palette.Entries.Length, "Palette");
  483. Assert.AreEqual (-16777216, bmp.Palette.Entries[0].ToArgb (), "Palette#0");
  484. Assert.AreEqual (-1, bmp.Palette.Entries[1].ToArgb (), "Palette#1");
  485. Assert.AreEqual (1, bmp.FrameDimensionsList.Length, "FrameDimensionsList");
  486. Assert.AreEqual (0, bmp.PropertyIdList.Length, "PropertyIdList");
  487. Assert.AreEqual (0, bmp.PropertyItems.Length, "PropertyItems");
  488. #if NET_2_0
  489. Assert.IsNull (bmp.Tag, "Tag");
  490. #endif
  491. Assert.AreEqual (96.0f, bmp.HorizontalResolution, "HorizontalResolution");
  492. Assert.AreEqual (96.0f, bmp.VerticalResolution, "VerticalResolution");
  493. Assert.AreEqual (48, bmp.Width, "bmp.Width");
  494. Assert.AreEqual (48, bmp.Height, "bmp.Height");
  495. Assert.AreEqual (0, rect.X, "rect.X");
  496. Assert.AreEqual (0, rect.Y, "rect.Y");
  497. Assert.AreEqual (48, rect.Width, "rect.Width");
  498. Assert.AreEqual (48, rect.Height, "rect.Height");
  499. Assert.AreEqual (48, bmp.Size.Width, "bmp.Size.Width");
  500. Assert.AreEqual (48, bmp.Size.Height, "bmp.Size.Height");
  501. }
  502. }
  503. [Test]
  504. public void Bitmap48Pixels ()
  505. {
  506. string sInFile = getInFile ("bitmaps/48x48x1.ico");
  507. using (Bitmap bmp = new Bitmap (sInFile)) {
  508. #if false
  509. for (int x = 0; x < bmp.Width; x += 4) {
  510. for (int y = 0; y < bmp.Height; y += 4)
  511. Console.WriteLine ("\t\t\t\tAssert.AreEqual ({0}, bmp.GetPixel ({1}, {2}).ToArgb (), \"{1},{2}\");", bmp.GetPixel (x, y).ToArgb (), x, y);
  512. }
  513. #else
  514. // sampling values from a well known bitmap
  515. Assert.AreEqual (-16777216, bmp.GetPixel (0, 0).ToArgb (), "0,0");
  516. Assert.AreEqual (-16777216, bmp.GetPixel (0, 4).ToArgb (), "0,4");
  517. Assert.AreEqual (-16777216, bmp.GetPixel (0, 8).ToArgb (), "0,8");
  518. Assert.AreEqual (-16777216, bmp.GetPixel (0, 12).ToArgb (), "0,12");
  519. Assert.AreEqual (-16777216, bmp.GetPixel (0, 16).ToArgb (), "0,16");
  520. Assert.AreEqual (-16777216, bmp.GetPixel (0, 20).ToArgb (), "0,20");
  521. Assert.AreEqual (-16777216, bmp.GetPixel (0, 24).ToArgb (), "0,24");
  522. Assert.AreEqual (-16777216, bmp.GetPixel (0, 28).ToArgb (), "0,28");
  523. Assert.AreEqual (-16777216, bmp.GetPixel (0, 32).ToArgb (), "0,32");
  524. Assert.AreEqual (-16777216, bmp.GetPixel (0, 36).ToArgb (), "0,36");
  525. Assert.AreEqual (-16777216, bmp.GetPixel (0, 40).ToArgb (), "0,40");
  526. Assert.AreEqual (-16777216, bmp.GetPixel (0, 44).ToArgb (), "0,44");
  527. Assert.AreEqual (-16777216, bmp.GetPixel (4, 0).ToArgb (), "4,0");
  528. Assert.AreEqual (0, bmp.GetPixel (4, 4).ToArgb (), "4,4");
  529. Assert.AreEqual (0, bmp.GetPixel (4, 8).ToArgb (), "4,8");
  530. Assert.AreEqual (0, bmp.GetPixel (4, 12).ToArgb (), "4,12");
  531. Assert.AreEqual (0, bmp.GetPixel (4, 16).ToArgb (), "4,16");
  532. Assert.AreEqual (0, bmp.GetPixel (4, 20).ToArgb (), "4,20");
  533. Assert.AreEqual (0, bmp.GetPixel (4, 24).ToArgb (), "4,24");
  534. Assert.AreEqual (0, bmp.GetPixel (4, 28).ToArgb (), "4,28");
  535. Assert.AreEqual (0, bmp.GetPixel (4, 32).ToArgb (), "4,32");
  536. Assert.AreEqual (0, bmp.GetPixel (4, 36).ToArgb (), "4,36");
  537. Assert.AreEqual (0, bmp.GetPixel (4, 40).ToArgb (), "4,40");
  538. Assert.AreEqual (-1, bmp.GetPixel (4, 44).ToArgb (), "4,44");
  539. Assert.AreEqual (-16777216, bmp.GetPixel (8, 0).ToArgb (), "8,0");
  540. Assert.AreEqual (0, bmp.GetPixel (8, 4).ToArgb (), "8,4");
  541. Assert.AreEqual (-16777216, bmp.GetPixel (8, 8).ToArgb (), "8,8");
  542. Assert.AreEqual (-16777216, bmp.GetPixel (8, 12).ToArgb (), "8,12");
  543. Assert.AreEqual (-16777216, bmp.GetPixel (8, 16).ToArgb (), "8,16");
  544. Assert.AreEqual (-16777216, bmp.GetPixel (8, 20).ToArgb (), "8,20");
  545. Assert.AreEqual (-16777216, bmp.GetPixel (8, 24).ToArgb (), "8,24");
  546. Assert.AreEqual (-16777216, bmp.GetPixel (8, 28).ToArgb (), "8,28");
  547. Assert.AreEqual (-16777216, bmp.GetPixel (8, 32).ToArgb (), "8,32");
  548. Assert.AreEqual (-16777216, bmp.GetPixel (8, 36).ToArgb (), "8,36");
  549. Assert.AreEqual (-16777216, bmp.GetPixel (8, 40).ToArgb (), "8,40");
  550. Assert.AreEqual (-1, bmp.GetPixel (8, 44).ToArgb (), "8,44");
  551. Assert.AreEqual (-16777216, bmp.GetPixel (12, 0).ToArgb (), "12,0");
  552. Assert.AreEqual (0, bmp.GetPixel (12, 4).ToArgb (), "12,4");
  553. Assert.AreEqual (-16777216, bmp.GetPixel (12, 8).ToArgb (), "12,8");
  554. Assert.AreEqual (-1, bmp.GetPixel (12, 12).ToArgb (), "12,12");
  555. Assert.AreEqual (-1, bmp.GetPixel (12, 16).ToArgb (), "12,16");
  556. Assert.AreEqual (-1, bmp.GetPixel (12, 20).ToArgb (), "12,20");
  557. Assert.AreEqual (-1, bmp.GetPixel (12, 24).ToArgb (), "12,24");
  558. Assert.AreEqual (-1, bmp.GetPixel (12, 28).ToArgb (), "12,28");
  559. Assert.AreEqual (-1, bmp.GetPixel (12, 32).ToArgb (), "12,32");
  560. Assert.AreEqual (0, bmp.GetPixel (12, 36).ToArgb (), "12,36");
  561. Assert.AreEqual (-16777216, bmp.GetPixel (12, 40).ToArgb (), "12,40");
  562. Assert.AreEqual (-1, bmp.GetPixel (12, 44).ToArgb (), "12,44");
  563. Assert.AreEqual (-16777216, bmp.GetPixel (16, 0).ToArgb (), "16,0");
  564. Assert.AreEqual (0, bmp.GetPixel (16, 4).ToArgb (), "16,4");
  565. Assert.AreEqual (-16777216, bmp.GetPixel (16, 8).ToArgb (), "16,8");
  566. Assert.AreEqual (-1, bmp.GetPixel (16, 12).ToArgb (), "16,12");
  567. Assert.AreEqual (0, bmp.GetPixel (16, 16).ToArgb (), "16,16");
  568. Assert.AreEqual (0, bmp.GetPixel (16, 20).ToArgb (), "16,20");
  569. Assert.AreEqual (0, bmp.GetPixel (16, 24).ToArgb (), "16,24");
  570. Assert.AreEqual (0, bmp.GetPixel (16, 28).ToArgb (), "16,28");
  571. Assert.AreEqual (-1, bmp.GetPixel (16, 32).ToArgb (), "16,32");
  572. Assert.AreEqual (0, bmp.GetPixel (16, 36).ToArgb (), "16,36");
  573. Assert.AreEqual (-16777216, bmp.GetPixel (16, 40).ToArgb (), "16,40");
  574. Assert.AreEqual (-1, bmp.GetPixel (16, 44).ToArgb (), "16,44");
  575. Assert.AreEqual (-16777216, bmp.GetPixel (20, 0).ToArgb (), "20,0");
  576. Assert.AreEqual (0, bmp.GetPixel (20, 4).ToArgb (), "20,4");
  577. Assert.AreEqual (-16777216, bmp.GetPixel (20, 8).ToArgb (), "20,8");
  578. Assert.AreEqual (-1, bmp.GetPixel (20, 12).ToArgb (), "20,12");
  579. Assert.AreEqual (0, bmp.GetPixel (20, 16).ToArgb (), "20,16");
  580. Assert.AreEqual (-16777216, bmp.GetPixel (20, 20).ToArgb (), "20,20");
  581. Assert.AreEqual (-16777216, bmp.GetPixel (20, 24).ToArgb (), "20,24");
  582. Assert.AreEqual (0, bmp.GetPixel (20, 28).ToArgb (), "20,28");
  583. Assert.AreEqual (-1, bmp.GetPixel (20, 32).ToArgb (), "20,32");
  584. Assert.AreEqual (0, bmp.GetPixel (20, 36).ToArgb (), "20,36");
  585. Assert.AreEqual (-16777216, bmp.GetPixel (20, 40).ToArgb (), "20,40");
  586. Assert.AreEqual (-1, bmp.GetPixel (20, 44).ToArgb (), "20,44");
  587. Assert.AreEqual (-16777216, bmp.GetPixel (24, 0).ToArgb (), "24,0");
  588. Assert.AreEqual (0, bmp.GetPixel (24, 4).ToArgb (), "24,4");
  589. Assert.AreEqual (-16777216, bmp.GetPixel (24, 8).ToArgb (), "24,8");
  590. Assert.AreEqual (-1, bmp.GetPixel (24, 12).ToArgb (), "24,12");
  591. Assert.AreEqual (0, bmp.GetPixel (24, 16).ToArgb (), "24,16");
  592. #endif
  593. }
  594. }
  595. [Test]
  596. [Category ("NotWorking")]
  597. public void Bitmat48Data ()
  598. {
  599. string sInFile = getInFile ("bitmaps/48x48x1.ico");
  600. using (Bitmap bmp = new Bitmap (sInFile)) {
  601. BitmapData data = bmp.LockBits (new Rectangle (0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
  602. try {
  603. Assert.AreEqual (bmp.Height, data.Height, "Height");
  604. Assert.AreEqual (bmp.Width, data.Width, "Width");
  605. Assert.AreEqual (PixelFormat.Format24bppRgb, data.PixelFormat, "PixelFormat");
  606. int size = data.Height * data.Stride;
  607. unsafe {
  608. byte* scan = (byte*) data.Scan0;
  609. #if false
  610. // 13 is prime (so we're not affected by a recurring pattern)
  611. for (int p = 0; p < size; p += 13) {
  612. Console.WriteLine ("\t\t\t\t\t\tAssert.AreEqual ({0}, *(scan + {1}), \"{1}\");", *(scan + p), p);
  613. }
  614. #else
  615. // sampling values from a well known bitmap
  616. Assert.AreEqual (0, *(scan + 0), "0");
  617. Assert.AreEqual (0, *(scan + 13), "13");
  618. Assert.AreEqual (0, *(scan + 26), "26");
  619. Assert.AreEqual (0, *(scan + 39), "39");
  620. Assert.AreEqual (0, *(scan + 52), "52");
  621. Assert.AreEqual (0, *(scan + 65), "65");
  622. Assert.AreEqual (0, *(scan + 78), "78");
  623. Assert.AreEqual (0, *(scan + 91), "91");
  624. Assert.AreEqual (0, *(scan + 104), "104");
  625. Assert.AreEqual (0, *(scan + 117), "117");
  626. Assert.AreEqual (0, *(scan + 130), "130");
  627. Assert.AreEqual (0, *(scan + 143), "143");
  628. Assert.AreEqual (0, *(scan + 156), "156");
  629. Assert.AreEqual (0, *(scan + 169), "169");
  630. Assert.AreEqual (0, *(scan + 182), "182");
  631. Assert.AreEqual (0, *(scan + 195), "195");
  632. Assert.AreEqual (0, *(scan + 208), "208");
  633. Assert.AreEqual (0, *(scan + 221), "221");
  634. Assert.AreEqual (0, *(scan + 234), "234");
  635. Assert.AreEqual (0, *(scan + 247), "247");
  636. Assert.AreEqual (0, *(scan + 260), "260");
  637. Assert.AreEqual (0, *(scan + 273), "273");
  638. Assert.AreEqual (0, *(scan + 286), "286");
  639. Assert.AreEqual (255, *(scan + 299), "299");
  640. Assert.AreEqual (255, *(scan + 312), "312");
  641. Assert.AreEqual (255, *(scan + 325), "325");
  642. Assert.AreEqual (255, *(scan + 338), "338");
  643. Assert.AreEqual (255, *(scan + 351), "351");
  644. Assert.AreEqual (255, *(scan + 364), "364");
  645. Assert.AreEqual (255, *(scan + 377), "377");
  646. Assert.AreEqual (255, *(scan + 390), "390");
  647. Assert.AreEqual (255, *(scan + 403), "403");
  648. Assert.AreEqual (255, *(scan + 416), "416");
  649. Assert.AreEqual (0, *(scan + 429), "429");
  650. Assert.AreEqual (255, *(scan + 442), "442");
  651. Assert.AreEqual (255, *(scan + 455), "455");
  652. Assert.AreEqual (255, *(scan + 468), "468");
  653. Assert.AreEqual (255, *(scan + 481), "481");
  654. Assert.AreEqual (255, *(scan + 494), "494");
  655. Assert.AreEqual (255, *(scan + 507), "507");
  656. Assert.AreEqual (255, *(scan + 520), "520");
  657. Assert.AreEqual (255, *(scan + 533), "533");
  658. Assert.AreEqual (255, *(scan + 546), "546");
  659. Assert.AreEqual (255, *(scan + 559), "559");
  660. Assert.AreEqual (0, *(scan + 572), "572");
  661. Assert.AreEqual (255, *(scan + 585), "585");
  662. Assert.AreEqual (0, *(scan + 598), "598");
  663. Assert.AreEqual (0, *(scan + 611), "611");
  664. Assert.AreEqual (0, *(scan + 624), "624");
  665. Assert.AreEqual (0, *(scan + 637), "637");
  666. Assert.AreEqual (0, *(scan + 650), "650");
  667. Assert.AreEqual (0, *(scan + 663), "663");
  668. Assert.AreEqual (0, *(scan + 676), "676");
  669. Assert.AreEqual (0, *(scan + 689), "689");
  670. Assert.AreEqual (0, *(scan + 702), "702");
  671. Assert.AreEqual (0, *(scan + 715), "715");
  672. Assert.AreEqual (255, *(scan + 728), "728");
  673. Assert.AreEqual (0, *(scan + 741), "741");
  674. Assert.AreEqual (0, *(scan + 754), "754");
  675. Assert.AreEqual (0, *(scan + 767), "767");
  676. Assert.AreEqual (0, *(scan + 780), "780");
  677. Assert.AreEqual (0, *(scan + 793), "793");
  678. Assert.AreEqual (0, *(scan + 806), "806");
  679. Assert.AreEqual (0, *(scan + 819), "819");
  680. Assert.AreEqual (0, *(scan + 832), "832");
  681. Assert.AreEqual (0, *(scan + 845), "845");
  682. Assert.AreEqual (0, *(scan + 858), "858");
  683. Assert.AreEqual (255, *(scan + 871), "871");
  684. Assert.AreEqual (0, *(scan + 884), "884");
  685. Assert.AreEqual (0, *(scan + 897), "897");
  686. Assert.AreEqual (0, *(scan + 910), "910");
  687. Assert.AreEqual (0, *(scan + 923), "923");
  688. Assert.AreEqual (0, *(scan + 936), "936");
  689. #endif
  690. }
  691. }
  692. finally {
  693. bmp.UnlockBits (data);
  694. }
  695. }
  696. }
  697. // 64x64x256 only has a 64x64 size available
  698. [Test]
  699. public void Bitmap64Features ()
  700. {
  701. string sInFile = getInFile ("bitmaps/64x64x256.ico");
  702. using (Bitmap bmp = new Bitmap (sInFile)) {
  703. GraphicsUnit unit = GraphicsUnit.World;
  704. RectangleF rect = bmp.GetBounds (ref unit);
  705. Assert.IsTrue (bmp.RawFormat.Equals (ImageFormat.Icon), "Icon");
  706. Assert.AreEqual (PixelFormat.Format32bppArgb, bmp.PixelFormat);
  707. Assert.AreEqual (73746, bmp.Flags, "bmp.Flags");
  708. Assert.AreEqual (256, bmp.Palette.Entries.Length, "Palette");
  709. Assert.AreEqual (1, bmp.FrameDimensionsList.Length, "FrameDimensionsList");
  710. Assert.AreEqual (0, bmp.PropertyIdList.Length, "PropertyIdList");
  711. Assert.AreEqual (0, bmp.PropertyItems.Length, "PropertyItems");
  712. #if NET_2_0
  713. Assert.IsNull (bmp.Tag, "Tag");
  714. #endif
  715. Assert.AreEqual (96.0f, bmp.HorizontalResolution, "HorizontalResolution");
  716. Assert.AreEqual (96.0f, bmp.VerticalResolution, "VerticalResolution");
  717. Assert.AreEqual (64, bmp.Width, "bmp.Width");
  718. Assert.AreEqual (64, bmp.Height, "bmp.Height");
  719. Assert.AreEqual (0, rect.X, "rect.X");
  720. Assert.AreEqual (0, rect.Y, "rect.Y");
  721. Assert.AreEqual (64, rect.Width, "rect.Width");
  722. Assert.AreEqual (64, rect.Height, "rect.Height");
  723. Assert.AreEqual (64, bmp.Size.Width, "bmp.Size.Width");
  724. Assert.AreEqual (64, bmp.Size.Height, "bmp.Size.Height");
  725. }
  726. }
  727. [Test]
  728. public void Bitmap64Pixels ()
  729. {
  730. string sInFile = getInFile ("bitmaps/64x64x256.ico");
  731. using (Bitmap bmp = new Bitmap (sInFile)) {
  732. #if false
  733. for (int x = 0; x < bmp.Width; x += 4) {
  734. for (int y = 0; y < bmp.Height; y += 4)
  735. Console.WriteLine ("\t\t\t\tAssert.AreEqual ({0}, bmp.GetPixel ({1}, {2}).ToArgb (), \"{1},{2}\");", bmp.GetPixel (x, y).ToArgb (), x, y);
  736. }
  737. #else
  738. // sampling values from a well known bitmap
  739. Assert.AreEqual (-65383, bmp.GetPixel (0, 0).ToArgb (), "0,0");
  740. Assert.AreEqual (-65383, bmp.GetPixel (0, 4).ToArgb (), "0,4");
  741. Assert.AreEqual (-65383, bmp.GetPixel (0, 8).ToArgb (), "0,8");
  742. Assert.AreEqual (-65383, bmp.GetPixel (0, 12).ToArgb (), "0,12");
  743. Assert.AreEqual (-65383, bmp.GetPixel (0, 16).ToArgb (), "0,16");
  744. Assert.AreEqual (-65383, bmp.GetPixel (0, 20).ToArgb (), "0,20");
  745. Assert.AreEqual (-65383, bmp.GetPixel (0, 24).ToArgb (), "0,24");
  746. Assert.AreEqual (-65383, bmp.GetPixel (0, 28).ToArgb (), "0,28");
  747. Assert.AreEqual (-65383, bmp.GetPixel (0, 32).ToArgb (), "0,32");
  748. Assert.AreEqual (-65383, bmp.GetPixel (0, 36).ToArgb (), "0,36");
  749. Assert.AreEqual (-65383, bmp.GetPixel (0, 40).ToArgb (), "0,40");
  750. Assert.AreEqual (-65383, bmp.GetPixel (0, 44).ToArgb (), "0,44");
  751. Assert.AreEqual (-65383, bmp.GetPixel (0, 48).ToArgb (), "0,48");
  752. Assert.AreEqual (-65383, bmp.GetPixel (0, 52).ToArgb (), "0,52");
  753. Assert.AreEqual (-65383, bmp.GetPixel (0, 56).ToArgb (), "0,56");
  754. Assert.AreEqual (-65383, bmp.GetPixel (0, 60).ToArgb (), "0,60");
  755. Assert.AreEqual (-65383, bmp.GetPixel (4, 0).ToArgb (), "4,0");
  756. Assert.AreEqual (-10079335, bmp.GetPixel (4, 4).ToArgb (), "4,4");
  757. Assert.AreEqual (-10079335, bmp.GetPixel (4, 8).ToArgb (), "4,8");
  758. Assert.AreEqual (-10079335, bmp.GetPixel (4, 12).ToArgb (), "4,12");
  759. Assert.AreEqual (-10079335, bmp.GetPixel (4, 16).ToArgb (), "4,16");
  760. Assert.AreEqual (-10079335, bmp.GetPixel (4, 20).ToArgb (), "4,20");
  761. Assert.AreEqual (-10079335, bmp.GetPixel (4, 24).ToArgb (), "4,24");
  762. Assert.AreEqual (-10079335, bmp.GetPixel (4, 28).ToArgb (), "4,28");
  763. Assert.AreEqual (-10079335, bmp.GetPixel (4, 32).ToArgb (), "4,32");
  764. Assert.AreEqual (-10079335, bmp.GetPixel (4, 36).ToArgb (), "4,36");
  765. Assert.AreEqual (-10079335, bmp.GetPixel (4, 40).ToArgb (), "4,40");
  766. Assert.AreEqual (-10079335, bmp.GetPixel (4, 44).ToArgb (), "4,44");
  767. Assert.AreEqual (-10079335, bmp.GetPixel (4, 48).ToArgb (), "4,48");
  768. Assert.AreEqual (-10079335, bmp.GetPixel (4, 52).ToArgb (), "4,52");
  769. Assert.AreEqual (-10079335, bmp.GetPixel (4, 56).ToArgb (), "4,56");
  770. Assert.AreEqual (0, bmp.GetPixel (4, 60).ToArgb (), "4,60");
  771. Assert.AreEqual (-65383, bmp.GetPixel (8, 0).ToArgb (), "8,0");
  772. Assert.AreEqual (-10079335, bmp.GetPixel (8, 4).ToArgb (), "8,4");
  773. Assert.AreEqual (-3342490, bmp.GetPixel (8, 8).ToArgb (), "8,8");
  774. Assert.AreEqual (-3342490, bmp.GetPixel (8, 12).ToArgb (), "8,12");
  775. Assert.AreEqual (-3342490, bmp.GetPixel (8, 16).ToArgb (), "8,16");
  776. Assert.AreEqual (-3342490, bmp.GetPixel (8, 20).ToArgb (), "8,20");
  777. Assert.AreEqual (-3342490, bmp.GetPixel (8, 24).ToArgb (), "8,24");
  778. Assert.AreEqual (-3342490, bmp.GetPixel (8, 28).ToArgb (), "8,28");
  779. Assert.AreEqual (-3342490, bmp.GetPixel (8, 32).ToArgb (), "8,32");
  780. Assert.AreEqual (-3342490, bmp.GetPixel (8, 36).ToArgb (), "8,36");
  781. Assert.AreEqual (-3342490, bmp.GetPixel (8, 40).ToArgb (), "8,40");
  782. Assert.AreEqual (-3342490, bmp.GetPixel (8, 44).ToArgb (), "8,44");
  783. Assert.AreEqual (-3342490, bmp.GetPixel (8, 48).ToArgb (), "8,48");
  784. Assert.AreEqual (-3342490, bmp.GetPixel (8, 52).ToArgb (), "8,52");
  785. Assert.AreEqual (0, bmp.GetPixel (8, 56).ToArgb (), "8,56");
  786. Assert.AreEqual (0, bmp.GetPixel (8, 60).ToArgb (), "8,60");
  787. Assert.AreEqual (-65383, bmp.GetPixel (12, 0).ToArgb (), "12,0");
  788. Assert.AreEqual (-10079335, bmp.GetPixel (12, 4).ToArgb (), "12,4");
  789. Assert.AreEqual (-3342490, bmp.GetPixel (12, 8).ToArgb (), "12,8");
  790. Assert.AreEqual (-33664, bmp.GetPixel (12, 12).ToArgb (), "12,12");
  791. Assert.AreEqual (-33664, bmp.GetPixel (12, 16).ToArgb (), "12,16");
  792. Assert.AreEqual (-33664, bmp.GetPixel (12, 20).ToArgb (), "12,20");
  793. Assert.AreEqual (-33664, bmp.GetPixel (12, 24).ToArgb (), "12,24");
  794. Assert.AreEqual (-33664, bmp.GetPixel (12, 28).ToArgb (), "12,28");
  795. Assert.AreEqual (-33664, bmp.GetPixel (12, 32).ToArgb (), "12,32");
  796. Assert.AreEqual (-33664, bmp.GetPixel (12, 36).ToArgb (), "12,36");
  797. Assert.AreEqual (-33664, bmp.GetPixel (12, 40).ToArgb (), "12,40");
  798. #endif
  799. }
  800. }
  801. [Test]
  802. [Category ("NotWorking")]
  803. public void Bitmat64Data ()
  804. {
  805. string sInFile = getInFile ("bitmaps/64x64x256.ico");
  806. using (Bitmap bmp = new Bitmap (sInFile)) {
  807. BitmapData data = bmp.LockBits (new Rectangle (0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
  808. try {
  809. Assert.AreEqual (bmp.Height, data.Height, "Height");
  810. Assert.AreEqual (bmp.Width, data.Width, "Width");
  811. Assert.AreEqual (PixelFormat.Format24bppRgb, data.PixelFormat, "PixelFormat");
  812. int size = data.Height * data.Stride;
  813. unsafe {
  814. byte* scan = (byte*) data.Scan0;
  815. #if false
  816. // 97 is prime (so we're not affected by a recurring pattern)
  817. for (int p = 0; p < size; p += 97) {
  818. Console.WriteLine ("\t\t\t\t\t\tAssert.AreEqual ({0}, *(scan + {1}), \"{1}\");", *(scan + p), p);
  819. }
  820. #else
  821. // sampling values from a well known bitmap
  822. Assert.AreEqual (153, *(scan + 0), "0");
  823. Assert.AreEqual (0, *(scan + 97), "97");
  824. Assert.AreEqual (255, *(scan + 194), "194");
  825. Assert.AreEqual (0, *(scan + 291), "291");
  826. Assert.AreEqual (0, *(scan + 388), "388");
  827. Assert.AreEqual (204, *(scan + 485), "485");
  828. Assert.AreEqual (204, *(scan + 582), "582");
  829. Assert.AreEqual (0, *(scan + 679), "679");
  830. Assert.AreEqual (204, *(scan + 776), "776");
  831. Assert.AreEqual (153, *(scan + 873), "873");
  832. Assert.AreEqual (0, *(scan + 970), "970");
  833. Assert.AreEqual (0, *(scan + 1067), "1067");
  834. Assert.AreEqual (153, *(scan + 1164), "1164");
  835. Assert.AreEqual (153, *(scan + 1261), "1261");
  836. Assert.AreEqual (102, *(scan + 1358), "1358");
  837. Assert.AreEqual (0, *(scan + 1455), "1455");
  838. Assert.AreEqual (0, *(scan + 1552), "1552");
  839. Assert.AreEqual (204, *(scan + 1649), "1649");
  840. Assert.AreEqual (153, *(scan + 1746), "1746");
  841. Assert.AreEqual (0, *(scan + 1843), "1843");
  842. Assert.AreEqual (0, *(scan + 1940), "1940");
  843. Assert.AreEqual (51, *(scan + 2037), "2037");
  844. Assert.AreEqual (0, *(scan + 2134), "2134");
  845. Assert.AreEqual (0, *(scan + 2231), "2231");
  846. Assert.AreEqual (102, *(scan + 2328), "2328");
  847. Assert.AreEqual (124, *(scan + 2425), "2425");
  848. Assert.AreEqual (204, *(scan + 2522), "2522");
  849. Assert.AreEqual (0, *(scan + 2619), "2619");
  850. Assert.AreEqual (0, *(scan + 2716), "2716");
  851. Assert.AreEqual (204, *(scan + 2813), "2813");
  852. Assert.AreEqual (51, *(scan + 2910), "2910");
  853. Assert.AreEqual (0, *(scan + 3007), "3007");
  854. Assert.AreEqual (255, *(scan + 3104), "3104");
  855. Assert.AreEqual (0, *(scan + 3201), "3201");
  856. Assert.AreEqual (0, *(scan + 3298), "3298");
  857. Assert.AreEqual (0, *(scan + 3395), "3395");
  858. Assert.AreEqual (128, *(scan + 3492), "3492");
  859. Assert.AreEqual (0, *(scan + 3589), "3589");
  860. Assert.AreEqual (255, *(scan + 3686), "3686");
  861. Assert.AreEqual (128, *(scan + 3783), "3783");
  862. Assert.AreEqual (0, *(scan + 3880), "3880");
  863. Assert.AreEqual (128, *(scan + 3977), "3977");
  864. Assert.AreEqual (0, *(scan + 4074), "4074");
  865. Assert.AreEqual (0, *(scan + 4171), "4171");
  866. Assert.AreEqual (204, *(scan + 4268), "4268");
  867. Assert.AreEqual (0, *(scan + 4365), "4365");
  868. Assert.AreEqual (0, *(scan + 4462), "4462");
  869. Assert.AreEqual (102, *(scan + 4559), "4559");
  870. Assert.AreEqual (0, *(scan + 4656), "4656");
  871. Assert.AreEqual (0, *(scan + 4753), "4753");
  872. Assert.AreEqual (102, *(scan + 4850), "4850");
  873. Assert.AreEqual (0, *(scan + 4947), "4947");
  874. Assert.AreEqual (0, *(scan + 5044), "5044");
  875. Assert.AreEqual (204, *(scan + 5141), "5141");
  876. Assert.AreEqual (128, *(scan + 5238), "5238");
  877. Assert.AreEqual (0, *(scan + 5335), "5335");
  878. Assert.AreEqual (128, *(scan + 5432), "5432");
  879. Assert.AreEqual (128, *(scan + 5529), "5529");
  880. Assert.AreEqual (0, *(scan + 5626), "5626");
  881. Assert.AreEqual (255, *(scan + 5723), "5723");
  882. Assert.AreEqual (153, *(scan + 5820), "5820");
  883. Assert.AreEqual (0, *(scan + 5917), "5917");
  884. Assert.AreEqual (0, *(scan + 6014), "6014");
  885. Assert.AreEqual (51, *(scan + 6111), "6111");
  886. Assert.AreEqual (0, *(scan + 6208), "6208");
  887. Assert.AreEqual (255, *(scan + 6305), "6305");
  888. Assert.AreEqual (153, *(scan + 6402), "6402");
  889. Assert.AreEqual (0, *(scan + 6499), "6499");
  890. Assert.AreEqual (153, *(scan + 6596), "6596");
  891. Assert.AreEqual (102, *(scan + 6693), "6693");
  892. Assert.AreEqual (0, *(scan + 6790), "6790");
  893. Assert.AreEqual (204, *(scan + 6887), "6887");
  894. Assert.AreEqual (153, *(scan + 6984), "6984");
  895. Assert.AreEqual (0, *(scan + 7081), "7081");
  896. Assert.AreEqual (204, *(scan + 7178), "7178");
  897. Assert.AreEqual (153, *(scan + 7275), "7275");
  898. Assert.AreEqual (0, *(scan + 7372), "7372");
  899. Assert.AreEqual (0, *(scan + 7469), "7469");
  900. Assert.AreEqual (153, *(scan + 7566), "7566");
  901. Assert.AreEqual (0, *(scan + 7663), "7663");
  902. Assert.AreEqual (0, *(scan + 7760), "7760");
  903. Assert.AreEqual (153, *(scan + 7857), "7857");
  904. Assert.AreEqual (102, *(scan + 7954), "7954");
  905. Assert.AreEqual (102, *(scan + 8051), "8051");
  906. Assert.AreEqual (0, *(scan + 8148), "8148");
  907. Assert.AreEqual (0, *(scan + 8245), "8245");
  908. Assert.AreEqual (0, *(scan + 8342), "8342");
  909. Assert.AreEqual (204, *(scan + 8439), "8439");
  910. Assert.AreEqual (0, *(scan + 8536), "8536");
  911. Assert.AreEqual (204, *(scan + 8633), "8633");
  912. Assert.AreEqual (128, *(scan + 8730), "8730");
  913. Assert.AreEqual (0, *(scan + 8827), "8827");
  914. Assert.AreEqual (0, *(scan + 8924), "8924");
  915. Assert.AreEqual (153, *(scan + 9021), "9021");
  916. Assert.AreEqual (153, *(scan + 9118), "9118");
  917. Assert.AreEqual (255, *(scan + 9215), "9215");
  918. Assert.AreEqual (0, *(scan + 9312), "9312");
  919. Assert.AreEqual (0, *(scan + 9409), "9409");
  920. Assert.AreEqual (204, *(scan + 9506), "9506");
  921. Assert.AreEqual (0, *(scan + 9603), "9603");
  922. Assert.AreEqual (0, *(scan + 9700), "9700");
  923. Assert.AreEqual (0, *(scan + 9797), "9797");
  924. Assert.AreEqual (128, *(scan + 9894), "9894");
  925. Assert.AreEqual (0, *(scan + 9991), "9991");
  926. Assert.AreEqual (0, *(scan + 10088), "10088");
  927. Assert.AreEqual (0, *(scan + 10185), "10185");
  928. Assert.AreEqual (102, *(scan + 10282), "10282");
  929. Assert.AreEqual (0, *(scan + 10379), "10379");
  930. Assert.AreEqual (0, *(scan + 10476), "10476");
  931. Assert.AreEqual (51, *(scan + 10573), "10573");
  932. Assert.AreEqual (204, *(scan + 10670), "10670");
  933. Assert.AreEqual (0, *(scan + 10767), "10767");
  934. Assert.AreEqual (0, *(scan + 10864), "10864");
  935. Assert.AreEqual (0, *(scan + 10961), "10961");
  936. Assert.AreEqual (153, *(scan + 11058), "11058");
  937. Assert.AreEqual (0, *(scan + 11155), "11155");
  938. Assert.AreEqual (0, *(scan + 11252), "11252");
  939. Assert.AreEqual (153, *(scan + 11349), "11349");
  940. Assert.AreEqual (51, *(scan + 11446), "11446");
  941. Assert.AreEqual (0, *(scan + 11543), "11543");
  942. Assert.AreEqual (0, *(scan + 11640), "11640");
  943. Assert.AreEqual (0, *(scan + 11737), "11737");
  944. Assert.AreEqual (204, *(scan + 11834), "11834");
  945. Assert.AreEqual (0, *(scan + 11931), "11931");
  946. Assert.AreEqual (0, *(scan + 12028), "12028");
  947. Assert.AreEqual (255, *(scan + 12125), "12125");
  948. Assert.AreEqual (153, *(scan + 12222), "12222");
  949. #endif
  950. }
  951. }
  952. finally {
  953. bmp.UnlockBits (data);
  954. }
  955. }
  956. }
  957. // 96x96x256.ico only has a 96x96 size available
  958. [Test]
  959. public void Bitmap96Features ()
  960. {
  961. string sInFile = getInFile ("bitmaps/96x96x256.ico");
  962. using (Bitmap bmp = new Bitmap (sInFile)) {
  963. GraphicsUnit unit = GraphicsUnit.World;
  964. RectangleF rect = bmp.GetBounds (ref unit);
  965. Assert.IsTrue (bmp.RawFormat.Equals (ImageFormat.Icon), "Icon");
  966. Assert.AreEqual (PixelFormat.Format32bppArgb, bmp.PixelFormat);
  967. Assert.AreEqual (73746, bmp.Flags, "bmp.Flags");
  968. Assert.AreEqual (256, bmp.Palette.Entries.Length, "Palette");
  969. Assert.AreEqual (1, bmp.FrameDimensionsList.Length, "FrameDimensionsList");
  970. Assert.AreEqual (0, bmp.PropertyIdList.Length, "PropertyIdList");
  971. Assert.AreEqual (0, bmp.PropertyItems.Length, "PropertyItems");
  972. #if NET_2_0
  973. Assert.IsNull (bmp.Tag, "Tag");
  974. #endif
  975. Assert.AreEqual (96.0f, bmp.HorizontalResolution, "HorizontalResolution");
  976. Assert.AreEqual (96.0f, bmp.VerticalResolution, "VerticalResolution");
  977. Assert.AreEqual (96, bmp.Width, "bmp.Width");
  978. Assert.AreEqual (96, bmp.Height, "bmp.Height");
  979. Assert.AreEqual (0, rect.X, "rect.X");
  980. Assert.AreEqual (0, rect.Y, "rect.Y");
  981. Assert.AreEqual (96, rect.Width, "rect.Width");
  982. Assert.AreEqual (96, rect.Height, "rect.Height");
  983. Assert.AreEqual (96, bmp.Size.Width, "bmp.Size.Width");
  984. Assert.AreEqual (96, bmp.Size.Height, "bmp.Size.Height");
  985. }
  986. }
  987. [Test]
  988. public void Bitmap96Pixels ()
  989. {
  990. string sInFile = getInFile ("bitmaps/96x96x256.ico");
  991. using (Bitmap bmp = new Bitmap (sInFile)) {
  992. #if false
  993. for (int x = 0; x < bmp.Width; x += 4) {
  994. for (int y = 0; y < bmp.Height; y += 4)
  995. Console.WriteLine ("\t\t\t\tAssert.AreEqual ({0}, bmp.GetPixel ({1}, {2}).ToArgb (), \"{1},{2}\");", bmp.GetPixel (x, y).ToArgb (), x, y);
  996. }
  997. #else
  998. // sampling values from a well known bitmap
  999. Assert.AreEqual (0, bmp.GetPixel (0, 0).ToArgb (), "0,0");
  1000. Assert.AreEqual (0, bmp.GetPixel (0, 4).ToArgb (), "0,4");
  1001. Assert.AreEqual (0, bmp.GetPixel (0, 8).ToArgb (), "0,8");
  1002. Assert.AreEqual (0, bmp.GetPixel (0, 12).ToArgb (), "0,12");
  1003. Assert.AreEqual (0, bmp.GetPixel (0, 16).ToArgb (), "0,16");
  1004. Assert.AreEqual (0, bmp.GetPixel (0, 20).ToArgb (), "0,20");
  1005. Assert.AreEqual (0, bmp.GetPixel (0, 24).ToArgb (), "0,24");
  1006. Assert.AreEqual (0, bmp.GetPixel (0, 28).ToArgb (), "0,28");
  1007. Assert.AreEqual (0, bmp.GetPixel (0, 32).ToArgb (), "0,32");
  1008. Assert.AreEqual (0, bmp.GetPixel (0, 36).ToArgb (), "0,36");
  1009. Assert.AreEqual (0, bmp.GetPixel (0, 40).ToArgb (), "0,40");
  1010. Assert.AreEqual (0, bmp.GetPixel (0, 44).ToArgb (), "0,44");
  1011. Assert.AreEqual (0, bmp.GetPixel (0, 48).ToArgb (), "0,48");
  1012. Assert.AreEqual (0, bmp.GetPixel (0, 52).ToArgb (), "0,52");
  1013. Assert.AreEqual (0, bmp.GetPixel (0, 56).ToArgb (), "0,56");
  1014. Assert.AreEqual (0, bmp.GetPixel (0, 60).ToArgb (), "0,60");
  1015. Assert.AreEqual (0, bmp.GetPixel (0, 64).ToArgb (), "0,64");
  1016. Assert.AreEqual (-14935012, bmp.GetPixel (0, 68).ToArgb (), "0,68");
  1017. Assert.AreEqual (0, bmp.GetPixel (0, 72).ToArgb (), "0,72");
  1018. Assert.AreEqual (0, bmp.GetPixel (0, 76).ToArgb (), "0,76");
  1019. Assert.AreEqual (0, bmp.GetPixel (0, 80).ToArgb (), "0,80");
  1020. Assert.AreEqual (0, bmp.GetPixel (0, 84).ToArgb (), "0,84");
  1021. Assert.AreEqual (0, bmp.GetPixel (0, 88).ToArgb (), "0,88");
  1022. Assert.AreEqual (0, bmp.GetPixel (0, 92).ToArgb (), "0,92");
  1023. Assert.AreEqual (0, bmp.GetPixel (4, 0).ToArgb (), "4,0");
  1024. Assert.AreEqual (0, bmp.GetPixel (4, 4).ToArgb (), "4,4");
  1025. Assert.AreEqual (-14935012, bmp.GetPixel (4, 8).ToArgb (), "4,8");
  1026. Assert.AreEqual (-3407872, bmp.GetPixel (4, 12).ToArgb (), "4,12");
  1027. Assert.AreEqual (-3407872, bmp.GetPixel (4, 16).ToArgb (), "4,16");
  1028. Assert.AreEqual (-14935012, bmp.GetPixel (4, 20).ToArgb (), "4,20");
  1029. Assert.AreEqual (0, bmp.GetPixel (4, 24).ToArgb (), "4,24");
  1030. Assert.AreEqual (0, bmp.GetPixel (4, 28).ToArgb (), "4,28");
  1031. Assert.AreEqual (0, bmp.GetPixel (4, 32).ToArgb (), "4,32");
  1032. Assert.AreEqual (0, bmp.GetPixel (4, 36).ToArgb (), "4,36");
  1033. Assert.AreEqual (-3368602, bmp.GetPixel (4, 40).ToArgb (), "4,40");
  1034. Assert.AreEqual (-3368602, bmp.GetPixel (4, 44).ToArgb (), "4,44");
  1035. Assert.AreEqual (-3368602, bmp.GetPixel (4, 48).ToArgb (), "4,48");
  1036. Assert.AreEqual (-3368602, bmp.GetPixel (4, 52).ToArgb (), "4,52");
  1037. Assert.AreEqual (0, bmp.GetPixel (4, 56).ToArgb (), "4,56");
  1038. Assert.AreEqual (0, bmp.GetPixel (4, 60).ToArgb (), "4,60");
  1039. Assert.AreEqual (-3342541, bmp.GetPixel (4, 64).ToArgb (), "4,64");
  1040. Assert.AreEqual (-3342541, bmp.GetPixel (4, 68).ToArgb (), "4,68");
  1041. Assert.AreEqual (-3342541, bmp.GetPixel (4, 72).ToArgb (), "4,72");
  1042. Assert.AreEqual (0, bmp.GetPixel (4, 76).ToArgb (), "4,76");
  1043. Assert.AreEqual (0, bmp.GetPixel (4, 80).ToArgb (), "4,80");
  1044. Assert.AreEqual (-26317, bmp.GetPixel (4, 84).ToArgb (), "4,84");
  1045. Assert.AreEqual (-26317, bmp.GetPixel (4, 88).ToArgb (), "4,88");
  1046. Assert.AreEqual (-26317, bmp.GetPixel (4, 92).ToArgb (), "4,92");
  1047. Assert.AreEqual (0, bmp.GetPixel (8, 0).ToArgb (), "8,0");
  1048. Assert.AreEqual (-14935012, bmp.GetPixel (8, 4).ToArgb (), "8,4");
  1049. Assert.AreEqual (-3407872, bmp.GetPixel (8, 8).ToArgb (), "8,8");
  1050. Assert.AreEqual (-3407872, bmp.GetPixel (8, 12).ToArgb (), "8,12");
  1051. Assert.AreEqual (-3407872, bmp.GetPixel (8, 16).ToArgb (), "8,16");
  1052. Assert.AreEqual (-3407872, bmp.GetPixel (8, 20).ToArgb (), "8,20");
  1053. Assert.AreEqual (-14935012, bmp.GetPixel (8, 24).ToArgb (), "8,24");
  1054. Assert.AreEqual (0, bmp.GetPixel (8, 28).ToArgb (), "8,28");
  1055. Assert.AreEqual (0, bmp.GetPixel (8, 32).ToArgb (), "8,32");
  1056. Assert.AreEqual (-3368602, bmp.GetPixel (8, 36).ToArgb (), "8,36");
  1057. Assert.AreEqual (-3368602, bmp.GetPixel (8, 40).ToArgb (), "8,40");
  1058. Assert.AreEqual (-3368602, bmp.GetPixel (8, 44).ToArgb (), "8,44");
  1059. Assert.AreEqual (-3368602, bmp.GetPixel (8, 48).ToArgb (), "8,48");
  1060. Assert.AreEqual (-3368602, bmp.GetPixel (8, 52).ToArgb (), "8,52");
  1061. Assert.AreEqual (-3368602, bmp.GetPixel (8, 56).ToArgb (), "8,56");
  1062. Assert.AreEqual (0, bmp.GetPixel (8, 60).ToArgb (), "8,60");
  1063. Assert.AreEqual (-3342541, bmp.GetPixel (8, 64).ToArgb (), "8,64");
  1064. Assert.AreEqual (-3342541, bmp.GetPixel (8, 68).ToArgb (), "8,68");
  1065. Assert.AreEqual (-3342541, bmp.GetPixel (8, 72).ToArgb (), "8,72");
  1066. Assert.AreEqual (0, bmp.GetPixel (8, 76).ToArgb (), "8,76");
  1067. Assert.AreEqual (0, bmp.GetPixel (8, 80).ToArgb (), "8,80");
  1068. Assert.AreEqual (-26317, bmp.GetPixel (8, 84).ToArgb (), "8,84");
  1069. Assert.AreEqual (-26317, bmp.GetPixel (8, 88).ToArgb (), "8,88");
  1070. Assert.AreEqual (-26317, bmp.GetPixel (8, 92).ToArgb (), "8,92");
  1071. Assert.AreEqual (0, bmp.GetPixel (12, 0).ToArgb (), "12,0");
  1072. Assert.AreEqual (-3407872, bmp.GetPixel (12, 4).ToArgb (), "12,4");
  1073. Assert.AreEqual (-3407872, bmp.GetPixel (12, 8).ToArgb (), "12,8");
  1074. Assert.AreEqual (-3407872, bmp.GetPixel (12, 12).ToArgb (), "12,12");
  1075. Assert.AreEqual (-3407872, bmp.GetPixel (12, 16).ToArgb (), "12,16");
  1076. Assert.AreEqual (-3407872, bmp.GetPixel (12, 20).ToArgb (), "12,20");
  1077. Assert.AreEqual (-3407872, bmp.GetPixel (12, 24).ToArgb (), "12,24");
  1078. Assert.AreEqual (0, bmp.GetPixel (12, 28).ToArgb (), "12,28");
  1079. Assert.AreEqual (-3368602, bmp.GetPixel (12, 32).ToArgb (), "12,32");
  1080. Assert.AreEqual (-3368602, bmp.GetPixel (12, 36).ToArgb (), "12,36");
  1081. Assert.AreEqual (-3368602, bmp.GetPixel (12, 40).ToArgb (), "12,40");
  1082. Assert.AreEqual (-3368602, bmp.GetPixel (12, 44).ToArgb (), "12,44");
  1083. Assert.AreEqual (-3368602, bmp.GetPixel (12, 48).ToArgb (), "12,48");
  1084. Assert.AreEqual (-3368602, bmp.GetPixel (12, 52).ToArgb (), "12,52");
  1085. Assert.AreEqual (-3368602, bmp.GetPixel (12, 56).ToArgb (), "12,56");
  1086. Assert.AreEqual (-3368602, bmp.GetPixel (12, 60).ToArgb (), "12,60");
  1087. Assert.AreEqual (-3342541, bmp.GetPixel (12, 64).ToArgb (), "12,64");
  1088. Assert.AreEqual (-3342541, bmp.GetPixel (12, 68).ToArgb (), "12,68");
  1089. Assert.AreEqual (-14935012, bmp.GetPixel (12, 72).ToArgb (), "12,72");
  1090. Assert.AreEqual (0, bmp.GetPixel (12, 76).ToArgb (), "12,76");
  1091. Assert.AreEqual (0, bmp.GetPixel (12, 80).ToArgb (), "12,80");
  1092. Assert.AreEqual (-26317, bmp.GetPixel (12, 84).ToArgb (), "12,84");
  1093. Assert.AreEqual (-26317, bmp.GetPixel (12, 88).ToArgb (), "12,88");
  1094. Assert.AreEqual (-26317, bmp.GetPixel (12, 92).ToArgb (), "12,92");
  1095. Assert.AreEqual (0, bmp.GetPixel (16, 0).ToArgb (), "16,0");
  1096. Assert.AreEqual (-3407872, bmp.GetPixel (16, 4).ToArgb (), "16,4");
  1097. Assert.AreEqual (-3407872, bmp.GetPixel (16, 8).ToArgb (), "16,8");
  1098. Assert.AreEqual (-3407872, bmp.GetPixel (16, 12).ToArgb (), "16,12");
  1099. Assert.AreEqual (-3407872, bmp.GetPixel (16, 16).ToArgb (), "16,16");
  1100. Assert.AreEqual (-3407872, bmp.GetPixel (16, 20).ToArgb (), "16,20");
  1101. Assert.AreEqual (-3407872, bmp.GetPixel (16, 24).ToArgb (), "16,24");
  1102. Assert.AreEqual (0, bmp.GetPixel (16, 28).ToArgb (), "16,28");
  1103. Assert.AreEqual (-3368602, bmp.GetPixel (16, 32).ToArgb (), "16,32");
  1104. Assert.AreEqual (-3368602, bmp.GetPixel (16, 36).ToArgb (), "16,36");
  1105. Assert.AreEqual (-3368602, bmp.GetPixel (16, 40).ToArgb (), "16,40");
  1106. Assert.AreEqual (-3368602, bmp.GetPixel (16, 44).ToArgb (), "16,44");
  1107. Assert.AreEqual (-3368602, bmp.GetPixel (16, 48).ToArgb (), "16,48");
  1108. Assert.AreEqual (-3368602, bmp.GetPixel (16, 52).ToArgb (), "16,52");
  1109. Assert.AreEqual (-3368602, bmp.GetPixel (16, 56).ToArgb (), "16,56");
  1110. Assert.AreEqual (-3368602, bmp.GetPixel (16, 60).ToArgb (), "16,60");
  1111. Assert.AreEqual (0, bmp.GetPixel (16, 64).ToArgb (), "16,64");
  1112. Assert.AreEqual (0, bmp.GetPixel (16, 68).ToArgb (), "16,68");
  1113. Assert.AreEqual (0, bmp.GetPixel (16, 72).ToArgb (), "16,72");
  1114. Assert.AreEqual (0, bmp.GetPixel (16, 76).ToArgb (), "16,76");
  1115. Assert.AreEqual (-14935012, bmp.GetPixel (16, 80).ToArgb (), "16,80");
  1116. Assert.AreEqual (0, bmp.GetPixel (16, 84).ToArgb (), "16,84");
  1117. Assert.AreEqual (-14935012, bmp.GetPixel (16, 88).ToArgb (), "16,88");
  1118. Assert.AreEqual (0, bmp.GetPixel (16, 92).ToArgb (), "16,92");
  1119. Assert.AreEqual (0, bmp.GetPixel (20, 0).ToArgb (), "20,0");
  1120. Assert.AreEqual (-14935012, bmp.GetPixel (20, 4).ToArgb (), "20,4");
  1121. Assert.AreEqual (-3407872, bmp.GetPixel (20, 8).ToArgb (), "20,8");
  1122. Assert.AreEqual (-3407872, bmp.GetPixel (20, 12).ToArgb (), "20,12");
  1123. Assert.AreEqual (-3407872, bmp.GetPixel (20, 16).ToArgb (), "20,16");
  1124. Assert.AreEqual (-3407872, bmp.GetPixel (20, 20).ToArgb (), "20,20");
  1125. Assert.AreEqual (-14935012, bmp.GetPixel (20, 24).ToArgb (), "20,24");
  1126. Assert.AreEqual (0, bmp.GetPixel (20, 28).ToArgb (), "20,28");
  1127. Assert.AreEqual (-3368602, bmp.GetPixel (20, 32).ToArgb (), "20,32");
  1128. Assert.AreEqual (-3368602, bmp.GetPixel (20, 36).ToArgb (), "20,36");
  1129. Assert.AreEqual (-3368602, bmp.GetPixel (20, 40).ToArgb (), "20,40");
  1130. Assert.AreEqual (-3368602, bmp.GetPixel (20, 44).ToArgb (), "20,44");
  1131. Assert.AreEqual (-3368602, bmp.GetPixel (20, 48).ToArgb (), "20,48");
  1132. Assert.AreEqual (-3368602, bmp.GetPixel (20, 52).ToArgb (), "20,52");
  1133. Assert.AreEqual (-3368602, bmp.GetPixel (20, 56).ToArgb (), "20,56");
  1134. Assert.AreEqual (-3368602, bmp.GetPixel (20, 60).ToArgb (), "20,60");
  1135. Assert.AreEqual (0, bmp.GetPixel (20, 64).ToArgb (), "20,64");
  1136. Assert.AreEqual (0, bmp.GetPixel (20, 68).ToArgb (), "20,68");
  1137. Assert.AreEqual (-13434829, bmp.GetPixel (20, 72).ToArgb (), "20,72");
  1138. Assert.AreEqual (-13434829, bmp.GetPixel (20, 76).ToArgb (), "20,76");
  1139. Assert.AreEqual (-13434829, bmp.GetPixel (20, 80).ToArgb (), "20,80");
  1140. Assert.AreEqual (-13434829, bmp.GetPixel (20, 84).ToArgb (), "20,84");
  1141. Assert.AreEqual (-13434829, bmp.GetPixel (20, 88).ToArgb (), "20,88");
  1142. Assert.AreEqual (0, bmp.GetPixel (20, 92).ToArgb (), "20,92");
  1143. Assert.AreEqual (0, bmp.GetPixel (24, 0).ToArgb (), "24,0");
  1144. Assert.AreEqual (0, bmp.GetPixel (24, 4).ToArgb (), "24,4");
  1145. Assert.AreEqual (-14935012, bmp.GetPixel (24, 8).ToArgb (), "24,8");
  1146. Assert.AreEqual (-3407872, bmp.GetPixel (24, 12).ToArgb (), "24,12");
  1147. Assert.AreEqual (-3407872, bmp.GetPixel (24, 16).ToArgb (), "24,16");
  1148. Assert.AreEqual (-14935012, bmp.GetPixel (24, 20).ToArgb (), "24,20");
  1149. Assert.AreEqual (0, bmp.GetPixel (24, 24).ToArgb (), "24,24");
  1150. Assert.AreEqual (0, bmp.GetPixel (24, 28).ToArgb (), "24,28");
  1151. Assert.AreEqual (-3368602, bmp.GetPixel (24, 32).ToArgb (), "24,32");
  1152. Assert.AreEqual (-3368602, bmp.GetPixel (24, 36).ToArgb (), "24,36");
  1153. Assert.AreEqual (-3368602, bmp.GetPixel (24, 40).ToArgb (), "24,40");
  1154. Assert.AreEqual (-3368602, bmp.GetPixel (24, 44).ToArgb (), "24,44");
  1155. Assert.AreEqual (-3368602, bmp.GetPixel (24, 48).ToArgb (), "24,48");
  1156. Assert.AreEqual (-3368602, bmp.GetPixel (24, 52).ToArgb (), "24,52");
  1157. Assert.AreEqual (-3368602, bmp.GetPixel (24, 56).ToArgb (), "24,56");
  1158. Assert.AreEqual (-3368602, bmp.GetPixel (24, 60).ToArgb (), "24,60");
  1159. Assert.AreEqual (0, bmp.GetPixel (24, 64).ToArgb (), "24,64");
  1160. Assert.AreEqual (-13434829, bmp.GetPixel (24, 68).ToArgb (), "24,68");
  1161. Assert.AreEqual (-13434829, bmp.GetPixel (24, 72).ToArgb (), "24,72");
  1162. Assert.AreEqual (-13434829, bmp.GetPixel (24, 76).ToArgb (), "24,76");
  1163. Assert.AreEqual (-13434829, bmp.GetPixel (24, 80).ToArgb (), "24,80");
  1164. Assert.AreEqual (-13434829, bmp.GetPixel (24, 84).ToArgb (), "24,84");
  1165. Assert.AreEqual (-13434829, bmp.GetPixel (24, 88).ToArgb (), "24,88");
  1166. Assert.AreEqual (-14935012, bmp.GetPixel (24, 92).ToArgb (), "24,92");
  1167. Assert.AreEqual (0, bmp.GetPixel (28, 0).ToArgb (), "28,0");
  1168. Assert.AreEqual (0, bmp.GetPixel (28, 4).ToArgb (), "28,4");
  1169. Assert.AreEqual (-14935012, bmp.GetPixel (28, 8).ToArgb (), "28,8");
  1170. Assert.AreEqual (0, bmp.GetPixel (28, 12).ToArgb (), "28,12");
  1171. Assert.AreEqual (0, bmp.GetPixel (28, 16).ToArgb (), "28,16");
  1172. Assert.AreEqual (-14935012, bmp.GetPixel (28, 20).ToArgb (), "28,20");
  1173. Assert.AreEqual (-16777012, bmp.GetPixel (28, 24).ToArgb (), "28,24");
  1174. Assert.AreEqual (0, bmp.GetPixel (28, 28).ToArgb (), "28,28");
  1175. Assert.AreEqual (-3368602, bmp.GetPixel (28, 32).ToArgb (), "28,32");
  1176. Assert.AreEqual (-3368602, bmp.GetPixel (28, 36).ToArgb (), "28,36");
  1177. Assert.AreEqual (-3368602, bmp.GetPixel (28, 40).ToArgb (), "28,40");
  1178. Assert.AreEqual (-3368602, bmp.GetPixel (28, 44).ToArgb (), "28,44");
  1179. Assert.AreEqual (-3368602, bmp.GetPixel (28, 48).ToArgb (), "28,48");
  1180. Assert.AreEqual (-3368602, bmp.GetPixel (28, 52).ToArgb (), "28,52");
  1181. Assert.AreEqual (-3368602, bmp.GetPixel (28, 56).ToArgb (), "28,56");
  1182. Assert.AreEqual (-3368602, bmp.GetPixel (28, 60).ToArgb (), "28,60");
  1183. Assert.AreEqual (0, bmp.GetPixel (28, 64).ToArgb (), "28,64");
  1184. Assert.AreEqual (-13434829, bmp.GetPixel (28, 68).ToArgb (), "28,68");
  1185. Assert.AreEqual (-13434829, bmp.GetPixel (28, 72).ToArgb (), "28,72");
  1186. Assert.AreEqual (-13434829, bmp.GetPixel (28, 76).ToArgb (), "28,76");
  1187. Assert.AreEqual (-13434829, bmp.GetPixel (28, 80).ToArgb (), "28,80");
  1188. Assert.AreEqual (-13434829, bmp.GetPixel (28, 84).ToArgb (), "28,84");
  1189. Assert.AreEqual (-13434829, bmp.GetPixel (28, 88).ToArgb (), "28,88");
  1190. Assert.AreEqual (-13434829, bmp.GetPixel (28, 92).ToArgb (), "28,92");
  1191. Assert.AreEqual (0, bmp.GetPixel (32, 0).ToArgb (), "32,0");
  1192. Assert.AreEqual (-10027264, bmp.GetPixel (32, 4).ToArgb (), "32,4");
  1193. Assert.AreEqual (-10027264, bmp.GetPixel (32, 8).ToArgb (), "32,8");
  1194. Assert.AreEqual (-10027264, bmp.GetPixel (32, 12).ToArgb (), "32,12");
  1195. Assert.AreEqual (-14935012, bmp.GetPixel (32, 16).ToArgb (), "32,16");
  1196. Assert.AreEqual (-16777012, bmp.GetPixel (32, 20).ToArgb (), "32,20");
  1197. Assert.AreEqual (-16777012, bmp.GetPixel (32, 24).ToArgb (), "32,24");
  1198. Assert.AreEqual (-16777012, bmp.GetPixel (32, 28).ToArgb (), "32,28");
  1199. Assert.AreEqual (0, bmp.GetPixel (32, 32).ToArgb (), "32,32");
  1200. Assert.AreEqual (-3368602, bmp.GetPixel (32, 36).ToArgb (), "32,36");
  1201. Assert.AreEqual (-3368602, bmp.GetPixel (32, 40).ToArgb (), "32,40");
  1202. Assert.AreEqual (-3368602, bmp.GetPixel (32, 44).ToArgb (), "32,44");
  1203. Assert.AreEqual (-3368602, bmp.GetPixel (32, 48).ToArgb (), "32,48");
  1204. Assert.AreEqual (-3368602, bmp.GetPixel (32, 52).ToArgb (), "32,52");
  1205. Assert.AreEqual (-3368602, bmp.GetPixel (32, 56).ToArgb (), "32,56");
  1206. Assert.AreEqual (0, bmp.GetPixel (32, 60).ToArgb (), "32,60");
  1207. Assert.AreEqual (0, bmp.GetPixel (32, 64).ToArgb (), "32,64");
  1208. Assert.AreEqual (-13434829, bmp.GetPixel (32, 68).ToArgb (), "32,68");
  1209. Assert.AreEqual (-13434829, bmp.GetPixel (32, 72).ToArgb (), "32,72");
  1210. Assert.AreEqual (-13434829, bmp.GetPixel (32, 76).ToArgb (), "32,76");
  1211. Assert.AreEqual (-13434829, bmp.GetPixel (32, 80).ToArgb (), "32,80");
  1212. Assert.AreEqual (-13434829, bmp.GetPixel (32, 84).ToArgb (), "32,84");
  1213. Assert.AreEqual (-13434829, bmp.GetPixel (32, 88).ToArgb (), "32,88");
  1214. Assert.AreEqual (-13434829, bmp.GetPixel (32, 92).ToArgb (), "32,92");
  1215. Assert.AreEqual (0, bmp.GetPixel (36, 0).ToArgb (), "36,0");
  1216. Assert.AreEqual (-10027264, bmp.GetPixel (36, 4).ToArgb (), "36,4");
  1217. Assert.AreEqual (-10027264, bmp.GetPixel (36, 8).ToArgb (), "36,8");
  1218. Assert.AreEqual (-10027264, bmp.GetPixel (36, 12).ToArgb (), "36,12");
  1219. Assert.AreEqual (-10027264, bmp.GetPixel (36, 16).ToArgb (), "36,16");
  1220. Assert.AreEqual (-14935012, bmp.GetPixel (36, 20).ToArgb (), "36,20");
  1221. Assert.AreEqual (-16777012, bmp.GetPixel (36, 24).ToArgb (), "36,24");
  1222. Assert.AreEqual (0, bmp.GetPixel (36, 28).ToArgb (), "36,28");
  1223. Assert.AreEqual (0, bmp.GetPixel (36, 32).ToArgb (), "36,32");
  1224. Assert.AreEqual (0, bmp.GetPixel (36, 36).ToArgb (), "36,36");
  1225. Assert.AreEqual (-3368602, bmp.GetPixel (36, 40).ToArgb (), "36,40");
  1226. Assert.AreEqual (-3368602, bmp.GetPixel (36, 44).ToArgb (), "36,44");
  1227. Assert.AreEqual (-3368602, bmp.GetPixel (36, 48).ToArgb (), "36,48");
  1228. Assert.AreEqual (-3368602, bmp.GetPixel (36, 52).ToArgb (), "36,52");
  1229. Assert.AreEqual (0, bmp.GetPixel (36, 56).ToArgb (), "36,56");
  1230. Assert.AreEqual (0, bmp.GetPixel (36, 60).ToArgb (), "36,60");
  1231. Assert.AreEqual (0, bmp.GetPixel (36, 64).ToArgb (), "36,64");
  1232. Assert.AreEqual (-13434829, bmp.GetPixel (36, 68).ToArgb (), "36,68");
  1233. Assert.AreEqual (-13434829, bmp.GetPixel (36, 72).ToArgb (), "36,72");
  1234. Assert.AreEqual (-13434829, bmp.GetPixel (36, 76).ToArgb (), "36,76");
  1235. Assert.AreEqual (-13434829, bmp.GetPixel (36, 80).ToArgb (), "36,80");
  1236. Assert.AreEqual (-13434829, bmp.GetPixel (36, 84).ToArgb (), "36,84");
  1237. Assert.AreEqual (-13434829, bmp.GetPixel (36, 88).ToArgb (), "36,88");
  1238. Assert.AreEqual (-13434829, bmp.GetPixel (36, 92).ToArgb (), "36,92");
  1239. Assert.AreEqual (0, bmp.GetPixel (40, 0).ToArgb (), "40,0");
  1240. Assert.AreEqual (-10027264, bmp.GetPixel (40, 4).ToArgb (), "40,4");
  1241. Assert.AreEqual (-10027264, bmp.GetPixel (40, 8).ToArgb (), "40,8");
  1242. Assert.AreEqual (-10027264, bmp.GetPixel (40, 12).ToArgb (), "40,12");
  1243. Assert.AreEqual (-14935012, bmp.GetPixel (40, 16).ToArgb (), "40,16");
  1244. Assert.AreEqual (0, bmp.GetPixel (40, 20).ToArgb (), "40,20");
  1245. Assert.AreEqual (0, bmp.GetPixel (40, 24).ToArgb (), "40,24");
  1246. Assert.AreEqual (0, bmp.GetPixel (40, 28).ToArgb (), "40,28");
  1247. Assert.AreEqual (-13408717, bmp.GetPixel (40, 32).ToArgb (), "40,32");
  1248. Assert.AreEqual (-13408717, bmp.GetPixel (40, 36).ToArgb (), "40,36");
  1249. Assert.AreEqual (0, bmp.GetPixel (40, 40).ToArgb (), "40,40");
  1250. Assert.AreEqual (0, bmp.GetPixel (40, 44).ToArgb (), "40,44");
  1251. Assert.AreEqual (-14935012, bmp.GetPixel (40, 48).ToArgb (), "40,48");
  1252. Assert.AreEqual (0, bmp.GetPixel (40, 52).ToArgb (), "40,52");
  1253. Assert.AreEqual (0, bmp.GetPixel (40, 56).ToArgb (), "40,56");
  1254. Assert.AreEqual (-26317, bmp.GetPixel (40, 60).ToArgb (), "40,60");
  1255. Assert.AreEqual (-26317, bmp.GetPixel (40, 64).ToArgb (), "40,64");
  1256. Assert.AreEqual (-14935012, bmp.GetPixel (40, 68).ToArgb (), "40,68");
  1257. Assert.AreEqual (-13434829, bmp.GetPixel (40, 72).ToArgb (), "40,72");
  1258. Assert.AreEqual (-13434829, bmp.GetPixel (40, 76).ToArgb (), "40,76");
  1259. Assert.AreEqual (-13434829, bmp.GetPixel (40, 80).ToArgb (), "40,80");
  1260. Assert.AreEqual (-13434829, bmp.GetPixel (40, 84).ToArgb (), "40,84");
  1261. Assert.AreEqual (-13434829, bmp.GetPixel (40, 88).ToArgb (), "40,88");
  1262. Assert.AreEqual (0, bmp.GetPixel (40, 92).ToArgb (), "40,92");
  1263. Assert.AreEqual (0, bmp.GetPixel (44, 0).ToArgb (), "44,0");
  1264. Assert.AreEqual (0, bmp.GetPixel (44, 4).ToArgb (), "44,4");
  1265. Assert.AreEqual (-14935012, bmp.GetPixel (44, 8).ToArgb (), "44,8");
  1266. Assert.AreEqual (0, bmp.GetPixel (44, 12).ToArgb (), "44,12");
  1267. Assert.AreEqual (0, bmp.GetPixel (44, 16).ToArgb (), "44,16");
  1268. Assert.AreEqual (0, bmp.GetPixel (44, 20).ToArgb (), "44,20");
  1269. Assert.AreEqual (0, bmp.GetPixel (44, 24).ToArgb (), "44,24");
  1270. Assert.AreEqual (0, bmp.GetPixel (44, 28).ToArgb (), "44,28");
  1271. Assert.AreEqual (-13408717, bmp.GetPixel (44, 32).ToArgb (), "44,32");
  1272. Assert.AreEqual (-13408717, bmp.GetPixel (44, 36).ToArgb (), "44,36");
  1273. Assert.AreEqual (0, bmp.GetPixel (44, 40).ToArgb (), "44,40");
  1274. Assert.AreEqual (-13312, bmp.GetPixel (44, 44).ToArgb (), "44,44");
  1275. Assert.AreEqual (-13312, bmp.GetPixel (44, 48).ToArgb (), "44,48");
  1276. Assert.AreEqual (-13312, bmp.GetPixel (44, 52).ToArgb (), "44,52");
  1277. Assert.AreEqual (-13312, bmp.GetPixel (44, 56).ToArgb (), "44,56");
  1278. Assert.AreEqual (-14935012, bmp.GetPixel (44, 60).ToArgb (), "44,60");
  1279. Assert.AreEqual (-14935012, bmp.GetPixel (44, 64).ToArgb (), "44,64");
  1280. Assert.AreEqual (0, bmp.GetPixel (44, 68).ToArgb (), "44,68");
  1281. Assert.AreEqual (-14935012, bmp.GetPixel (44, 72).ToArgb (), "44,72");
  1282. Assert.AreEqual (-13434829, bmp.GetPixel (44, 76).ToArgb (), "44,76");
  1283. Assert.AreEqual (-13434829, bmp.GetPixel (44, 80).ToArgb (), "44,80");
  1284. Assert.AreEqual (-13434829, bmp.GetPixel (44, 84).ToArgb (), "44,84");
  1285. Assert.AreEqual (-14935012, bmp.GetPixel (44, 88).ToArgb (), "44,88");
  1286. Assert.AreEqual (0, bmp.GetPixel (44, 92).ToArgb (), "44,92");
  1287. Assert.AreEqual (0, bmp.GetPixel (48, 0).ToArgb (), "48,0");
  1288. Assert.AreEqual (0, bmp.GetPixel (48, 4).ToArgb (), "48,4");
  1289. Assert.AreEqual (0, bmp.GetPixel (48, 8).ToArgb (), "48,8");
  1290. Assert.AreEqual (0, bmp.GetPixel (48, 12).ToArgb (), "48,12");
  1291. Assert.AreEqual (-52429, bmp.GetPixel (48, 16).ToArgb (), "48,16");
  1292. Assert.AreEqual (-52429, bmp.GetPixel (48, 20).ToArgb (), "48,20");
  1293. Assert.AreEqual (-52429, bmp.GetPixel (48, 24).ToArgb (), "48,24");
  1294. Assert.AreEqual (-52429, bmp.GetPixel (48, 28).ToArgb (), "48,28");
  1295. Assert.AreEqual (-14935012, bmp.GetPixel (48, 32).ToArgb (), "48,32");
  1296. Assert.AreEqual (0, bmp.GetPixel (48, 36).ToArgb (), "48,36");
  1297. Assert.AreEqual (-14935012, bmp.GetPixel (48, 40).ToArgb (), "48,40");
  1298. Assert.AreEqual (-13312, bmp.GetPixel (48, 44).ToArgb (), "48,44");
  1299. Assert.AreEqual (-13312, bmp.GetPixel (48, 48).ToArgb (), "48,48");
  1300. Assert.AreEqual (-13312, bmp.GetPixel (48, 52).ToArgb (), "48,52");
  1301. Assert.AreEqual (-13312, bmp.GetPixel (48, 56).ToArgb (), "48,56");
  1302. Assert.AreEqual (0, bmp.GetPixel (48, 60).ToArgb (), "48,60");
  1303. Assert.AreEqual (1842204, bmp.GetPixel (48, 64).ToArgb (), "48,64");
  1304. Assert.AreEqual (-3355546, bmp.GetPixel (48, 68).ToArgb (), "48,68");
  1305. Assert.AreEqual (-3355546, bmp.GetPixel (48, 72).ToArgb (), "48,72");
  1306. Assert.AreEqual (0, bmp.GetPixel (48, 76).ToArgb (), "48,76");
  1307. Assert.AreEqual (0, bmp.GetPixel (48, 80).ToArgb (), "48,80");
  1308. Assert.AreEqual (0, bmp.GetPixel (48, 84).ToArgb (), "48,84");
  1309. Assert.AreEqual (0, bmp.GetPixel (48, 88).ToArgb (), "48,88");
  1310. Assert.AreEqual (0, bmp.GetPixel (48, 92).ToArgb (), "48,92");
  1311. Assert.AreEqual (0, bmp.GetPixel (52, 0).ToArgb (), "52,0");
  1312. Assert.AreEqual (0, bmp.GetPixel (52, 4).ToArgb (), "52,4");
  1313. Assert.AreEqual (-14935012, bmp.GetPixel (52, 8).ToArgb (), "52,8");
  1314. Assert.AreEqual (-52429, bmp.GetPixel (52, 12).ToArgb (), "52,12");
  1315. Assert.AreEqual (-52429, bmp.GetPixel (52, 16).ToArgb (), "52,16");
  1316. Assert.AreEqual (-52429, bmp.GetPixel (52, 20).ToArgb (), "52,20");
  1317. Assert.AreEqual (-52429, bmp.GetPixel (52, 24).ToArgb (), "52,24");
  1318. Assert.AreEqual (-52429, bmp.GetPixel (52, 28).ToArgb (), "52,28");
  1319. Assert.AreEqual (-52429, bmp.GetPixel (52, 32).ToArgb (), "52,32");
  1320. Assert.AreEqual (-52429, bmp.GetPixel (52, 36).ToArgb (), "52,36");
  1321. Assert.AreEqual (-14935012, bmp.GetPixel (52, 40).ToArgb (), "52,40");
  1322. Assert.AreEqual (-13312, bmp.GetPixel (52, 44).ToArgb (), "52,44");
  1323. Assert.AreEqual (-13312, bmp.GetPixel (52, 48).ToArgb (), "52,48");
  1324. Assert.AreEqual (-13312, bmp.GetPixel (52, 52).ToArgb (), "52,52");
  1325. Assert.AreEqual (-13312, bmp.GetPixel (52, 56).ToArgb (), "52,56");
  1326. Assert.AreEqual (0, bmp.GetPixel (52, 60).ToArgb (), "52,60");
  1327. Assert.AreEqual (-3355546, bmp.GetPixel (52, 64).ToArgb (), "52,64");
  1328. Assert.AreEqual (-3355546, bmp.GetPixel (52, 68).ToArgb (), "52,68");
  1329. Assert.AreEqual (-3355546, bmp.GetPixel (52, 72).ToArgb (), "52,72");
  1330. Assert.AreEqual (-3355546, bmp.GetPixel (52, 76).ToArgb (), "52,76");
  1331. Assert.AreEqual (0, bmp.GetPixel (52, 80).ToArgb (), "52,80");
  1332. Assert.AreEqual (-6737101, bmp.GetPixel (52, 84).ToArgb (), "52,84");
  1333. Assert.AreEqual (-6737101, bmp.GetPixel (52, 88).ToArgb (), "52,88");
  1334. Assert.AreEqual (-6737101, bmp.GetPixel (52, 92).ToArgb (), "52,92");
  1335. Assert.AreEqual (0, bmp.GetPixel (56, 0).ToArgb (), "56,0");
  1336. Assert.AreEqual (0, bmp.GetPixel (56, 4).ToArgb (), "56,4");
  1337. Assert.AreEqual (-52429, bmp.GetPixel (56, 8).ToArgb (), "56,8");
  1338. Assert.AreEqual (-52429, bmp.GetPixel (56, 12).ToArgb (), "56,12");
  1339. Assert.AreEqual (-52429, bmp.GetPixel (56, 16).ToArgb (), "56,16");
  1340. Assert.AreEqual (-52429, bmp.GetPixel (56, 20).ToArgb (), "56,20");
  1341. Assert.AreEqual (-52429, bmp.GetPixel (56, 24).ToArgb (), "56,24");
  1342. Assert.AreEqual (-52429, bmp.GetPixel (56, 28).ToArgb (), "56,28");
  1343. Assert.AreEqual (-52429, bmp.GetPixel (56, 32).ToArgb (), "56,32");
  1344. Assert.AreEqual (-52429, bmp.GetPixel (56, 36).ToArgb (), "56,36");
  1345. Assert.AreEqual (-14935012, bmp.GetPixel (56, 40).ToArgb (), "56,40");
  1346. Assert.AreEqual (-13312, bmp.GetPixel (56, 44).ToArgb (), "56,44");
  1347. Assert.AreEqual (-13312, bmp.GetPixel (56, 48).ToArgb (), "56,48");
  1348. Assert.AreEqual (-13312, bmp.GetPixel (56, 52).ToArgb (), "56,52");
  1349. Assert.AreEqual (-13312, bmp.GetPixel (56, 56).ToArgb (), "56,56");
  1350. Assert.AreEqual (0, bmp.GetPixel (56, 60).ToArgb (), "56,60");
  1351. Assert.AreEqual (-3355546, bmp.GetPixel (56, 64).ToArgb (), "56,64");
  1352. Assert.AreEqual (-3355546, bmp.GetPixel (56, 68).ToArgb (), "56,68");
  1353. Assert.AreEqual (-3355546, bmp.GetPixel (56, 72).ToArgb (), "56,72");
  1354. Assert.AreEqual (-3355546, bmp.GetPixel (56, 76).ToArgb (), "56,76");
  1355. Assert.AreEqual (-6737101, bmp.GetPixel (56, 80).ToArgb (), "56,80");
  1356. Assert.AreEqual (-6737101, bmp.GetPixel (56, 84).ToArgb (), "56,84");
  1357. Assert.AreEqual (-6737101, bmp.GetPixel (56, 88).ToArgb (), "56,88");
  1358. Assert.AreEqual (-6737101, bmp.GetPixel (56, 92).ToArgb (), "56,92");
  1359. Assert.AreEqual (0, bmp.GetPixel (60, 0).ToArgb (), "60,0");
  1360. Assert.AreEqual (-52429, bmp.GetPixel (60, 4).ToArgb (), "60,4");
  1361. Assert.AreEqual (-52429, bmp.GetPixel (60, 8).ToArgb (), "60,8");
  1362. Assert.AreEqual (-52429, bmp.GetPixel (60, 12).ToArgb (), "60,12");
  1363. Assert.AreEqual (-52429, bmp.GetPixel (60, 16).ToArgb (), "60,16");
  1364. Assert.AreEqual (-52429, bmp.GetPixel (60, 20).ToArgb (), "60,20");
  1365. Assert.AreEqual (-52429, bmp.GetPixel (60, 24).ToArgb (), "60,24");
  1366. Assert.AreEqual (-52429, bmp.GetPixel (60, 28).ToArgb (), "60,28");
  1367. Assert.AreEqual (-52429, bmp.GetPixel (60, 32).ToArgb (), "60,32");
  1368. Assert.AreEqual (-52429, bmp.GetPixel (60, 36).ToArgb (), "60,36");
  1369. Assert.AreEqual (-52429, bmp.GetPixel (60, 40).ToArgb (), "60,40");
  1370. Assert.AreEqual (0, bmp.GetPixel (60, 44).ToArgb (), "60,44");
  1371. Assert.AreEqual (-14935012, bmp.GetPixel (60, 48).ToArgb (), "60,48");
  1372. Assert.AreEqual (0, bmp.GetPixel (60, 52).ToArgb (), "60,52");
  1373. Assert.AreEqual (0, bmp.GetPixel (60, 56).ToArgb (), "60,56");
  1374. Assert.AreEqual (0, bmp.GetPixel (60, 60).ToArgb (), "60,60");
  1375. Assert.AreEqual (0, bmp.GetPixel (60, 64).ToArgb (), "60,64");
  1376. Assert.AreEqual (-3355546, bmp.GetPixel (60, 68).ToArgb (), "60,68");
  1377. Assert.AreEqual (-3355546, bmp.GetPixel (60, 72).ToArgb (), "60,72");
  1378. Assert.AreEqual (0, bmp.GetPixel (60, 76).ToArgb (), "60,76");
  1379. Assert.AreEqual (-6737101, bmp.GetPixel (60, 80).ToArgb (), "60,80");
  1380. Assert.AreEqual (-6737101, bmp.GetPixel (60, 84).ToArgb (), "60,84");
  1381. Assert.AreEqual (-6737101, bmp.GetPixel (60, 88).ToArgb (), "60,88");
  1382. Assert.AreEqual (-6737101, bmp.GetPixel (60, 92).ToArgb (), "60,92");
  1383. Assert.AreEqual (0, bmp.GetPixel (64, 0).ToArgb (), "64,0");
  1384. Assert.AreEqual (-52429, bmp.GetPixel (64, 4).ToArgb (), "64,4");
  1385. Assert.AreEqual (-52429, bmp.GetPixel (64, 8).ToArgb (), "64,8");
  1386. Assert.AreEqual (-52429, bmp.GetPixel (64, 12).ToArgb (), "64,12");
  1387. Assert.AreEqual (-52429, bmp.GetPixel (64, 16).ToArgb (), "64,16");
  1388. Assert.AreEqual (-52429, bmp.GetPixel (64, 20).ToArgb (), "64,20");
  1389. Assert.AreEqual (-52429, bmp.GetPixel (64, 24).ToArgb (), "64,24");
  1390. Assert.AreEqual (-52429, bmp.GetPixel (64, 28).ToArgb (), "64,28");
  1391. Assert.AreEqual (-52429, bmp.GetPixel (64, 32).ToArgb (), "64,32");
  1392. Assert.AreEqual (-52429, bmp.GetPixel (64, 36).ToArgb (), "64,36");
  1393. Assert.AreEqual (-52429, bmp.GetPixel (64, 40).ToArgb (), "64,40");
  1394. Assert.AreEqual (-14935012, bmp.GetPixel (64, 44).ToArgb (), "64,44");
  1395. Assert.AreEqual (0, bmp.GetPixel (64, 48).ToArgb (), "64,48");
  1396. Assert.AreEqual (0, bmp.GetPixel (64, 52).ToArgb (), "64,52");
  1397. Assert.AreEqual (-6750157, bmp.GetPixel (64, 56).ToArgb (), "64,56");
  1398. Assert.AreEqual (-6750157, bmp.GetPixel (64, 60).ToArgb (), "64,60");
  1399. Assert.AreEqual (-6750157, bmp.GetPixel (64, 64).ToArgb (), "64,64");
  1400. Assert.AreEqual (-14935012, bmp.GetPixel (64, 68).ToArgb (), "64,68");
  1401. Assert.AreEqual (0, bmp.GetPixel (64, 72).ToArgb (), "64,72");
  1402. Assert.AreEqual (0, bmp.GetPixel (64, 76).ToArgb (), "64,76");
  1403. Assert.AreEqual (0, bmp.GetPixel (64, 80).ToArgb (), "64,80");
  1404. Assert.AreEqual (-6737101, bmp.GetPixel (64, 84).ToArgb (), "64,84");
  1405. Assert.AreEqual (-6737101, bmp.GetPixel (64, 88).ToArgb (), "64,88");
  1406. Assert.AreEqual (-14935012, bmp.GetPixel (64, 92).ToArgb (), "64,92");
  1407. Assert.AreEqual (-14935012, bmp.GetPixel (68, 0).ToArgb (), "68,0");
  1408. Assert.AreEqual (-52429, bmp.GetPixel (68, 4).ToArgb (), "68,4");
  1409. Assert.AreEqual (-52429, bmp.GetPixel (68, 8).ToArgb (), "68,8");
  1410. Assert.AreEqual (-52429, bmp.GetPixel (68, 12).ToArgb (), "68,12");
  1411. Assert.AreEqual (-52429, bmp.GetPixel (68, 16).ToArgb (), "68,16");
  1412. Assert.AreEqual (-52429, bmp.GetPixel (68, 20).ToArgb (), "68,20");
  1413. Assert.AreEqual (-52429, bmp.GetPixel (68, 24).ToArgb (), "68,24");
  1414. Assert.AreEqual (-52429, bmp.GetPixel (68, 28).ToArgb (), "68,28");
  1415. Assert.AreEqual (-52429, bmp.GetPixel (68, 32).ToArgb (), "68,32");
  1416. Assert.AreEqual (-52429, bmp.GetPixel (68, 36).ToArgb (), "68,36");
  1417. Assert.AreEqual (-52429, bmp.GetPixel (68, 40).ToArgb (), "68,40");
  1418. Assert.AreEqual (-52429, bmp.GetPixel (68, 44).ToArgb (), "68,44");
  1419. Assert.AreEqual (0, bmp.GetPixel (68, 48).ToArgb (), "68,48");
  1420. Assert.AreEqual (-6750157, bmp.GetPixel (68, 52).ToArgb (), "68,52");
  1421. Assert.AreEqual (-6750157, bmp.GetPixel (68, 56).ToArgb (), "68,56");
  1422. Assert.AreEqual (-6750157, bmp.GetPixel (68, 60).ToArgb (), "68,60");
  1423. Assert.AreEqual (-6750157, bmp.GetPixel (68, 64).ToArgb (), "68,64");
  1424. Assert.AreEqual (-6750157, bmp.GetPixel (68, 68).ToArgb (), "68,68");
  1425. Assert.AreEqual (-14935012, bmp.GetPixel (68, 72).ToArgb (), "68,72");
  1426. Assert.AreEqual (-16751002, bmp.GetPixel (68, 76).ToArgb (), "68,76");
  1427. Assert.AreEqual (-16751002, bmp.GetPixel (68, 80).ToArgb (), "68,80");
  1428. Assert.AreEqual (0, bmp.GetPixel (68, 84).ToArgb (), "68,84");
  1429. Assert.AreEqual (0, bmp.GetPixel (68, 88).ToArgb (), "68,88");
  1430. Assert.AreEqual (-39373, bmp.GetPixel (68, 92).ToArgb (), "68,92");
  1431. Assert.AreEqual (-14935012, bmp.GetPixel (72, 0).ToArgb (), "72,0");
  1432. Assert.AreEqual (-52429, bmp.GetPixel (72, 4).ToArgb (), "72,4");
  1433. Assert.AreEqual (-52429, bmp.GetPixel (72, 8).ToArgb (), "72,8");
  1434. Assert.AreEqual (-52429, bmp.GetPixel (72, 12).ToArgb (), "72,12");
  1435. Assert.AreEqual (-52429, bmp.GetPixel (72, 16).ToArgb (), "72,16");
  1436. Assert.AreEqual (-52429, bmp.GetPixel (72, 20).ToArgb (), "72,20");
  1437. Assert.AreEqual (-52429, bmp.GetPixel (72, 24).ToArgb (), "72,24");
  1438. Assert.AreEqual (-52429, bmp.GetPixel (72, 28).ToArgb (), "72,28");
  1439. Assert.AreEqual (-52429, bmp.GetPixel (72, 32).ToArgb (), "72,32");
  1440. Assert.AreEqual (-52429, bmp.GetPixel (72, 36).ToArgb (), "72,36");
  1441. Assert.AreEqual (-52429, bmp.GetPixel (72, 40).ToArgb (), "72,40");
  1442. Assert.AreEqual (-52429, bmp.GetPixel (72, 44).ToArgb (), "72,44");
  1443. Assert.AreEqual (-14935012, bmp.GetPixel (72, 48).ToArgb (), "72,48");
  1444. Assert.AreEqual (-6750157, bmp.GetPixel (72, 52).ToArgb (), "72,52");
  1445. Assert.AreEqual (-6750157, bmp.GetPixel (72, 56).ToArgb (), "72,56");
  1446. Assert.AreEqual (-6750157, bmp.GetPixel (72, 60).ToArgb (), "72,60");
  1447. Assert.AreEqual (-6750157, bmp.GetPixel (72, 64).ToArgb (), "72,64");
  1448. Assert.AreEqual (-6750157, bmp.GetPixel (72, 68).ToArgb (), "72,68");
  1449. Assert.AreEqual (-6750157, bmp.GetPixel (72, 72).ToArgb (), "72,72");
  1450. Assert.AreEqual (0, bmp.GetPixel (72, 76).ToArgb (), "72,76");
  1451. Assert.AreEqual (0, bmp.GetPixel (72, 80).ToArgb (), "72,80");
  1452. Assert.AreEqual (0, bmp.GetPixel (72, 84).ToArgb (), "72,84");
  1453. Assert.AreEqual (0, bmp.GetPixel (72, 88).ToArgb (), "72,88");
  1454. Assert.AreEqual (-39373, bmp.GetPixel (72, 92).ToArgb (), "72,92");
  1455. Assert.AreEqual (0, bmp.GetPixel (76, 0).ToArgb (), "76,0");
  1456. Assert.AreEqual (-52429, bmp.GetPixel (76, 4).ToArgb (), "76,4");
  1457. Assert.AreEqual (-52429, bmp.GetPixel (76, 8).ToArgb (), "76,8");
  1458. Assert.AreEqual (-52429, bmp.GetPixel (76, 12).ToArgb (), "76,12");
  1459. Assert.AreEqual (-52429, bmp.GetPixel (76, 16).ToArgb (), "76,16");
  1460. Assert.AreEqual (-52429, bmp.GetPixel (76, 20).ToArgb (), "76,20");
  1461. Assert.AreEqual (-52429, bmp.GetPixel (76, 24).ToArgb (), "76,24");
  1462. Assert.AreEqual (-52429, bmp.GetPixel (76, 28).ToArgb (), "76,28");
  1463. Assert.AreEqual (-52429, bmp.GetPixel (76, 32).ToArgb (), "76,32");
  1464. Assert.AreEqual (-52429, bmp.GetPixel (76, 36).ToArgb (), "76,36");
  1465. Assert.AreEqual (-52429, bmp.GetPixel (76, 40).ToArgb (), "76,40");
  1466. Assert.AreEqual (-14935012, bmp.GetPixel (76, 44).ToArgb (), "76,44");
  1467. Assert.AreEqual (-6750157, bmp.GetPixel (76, 48).ToArgb (), "76,48");
  1468. Assert.AreEqual (-6750157, bmp.GetPixel (76, 52).ToArgb (), "76,52");
  1469. Assert.AreEqual (-6750157, bmp.GetPixel (76, 56).ToArgb (), "76,56");
  1470. Assert.AreEqual (-6750157, bmp.GetPixel (76, 60).ToArgb (), "76,60");
  1471. Assert.AreEqual (-6750157, bmp.GetPixel (76, 64).ToArgb (), "76,64");
  1472. Assert.AreEqual (-6750157, bmp.GetPixel (76, 68).ToArgb (), "76,68");
  1473. Assert.AreEqual (-6750157, bmp.GetPixel (76, 72).ToArgb (), "76,72");
  1474. Assert.AreEqual (-14935012, bmp.GetPixel (76, 76).ToArgb (), "76,76");
  1475. Assert.AreEqual (0, bmp.GetPixel (76, 80).ToArgb (), "76,80");
  1476. Assert.AreEqual (-65383, bmp.GetPixel (76, 84).ToArgb (), "76,84");
  1477. Assert.AreEqual (-65383, bmp.GetPixel (76, 88).ToArgb (), "76,88");
  1478. Assert.AreEqual (-14935012, bmp.GetPixel (76, 92).ToArgb (), "76,92");
  1479. Assert.AreEqual (0, bmp.GetPixel (80, 0).ToArgb (), "80,0");
  1480. Assert.AreEqual (-52429, bmp.GetPixel (80, 4).ToArgb (), "80,4");
  1481. Assert.AreEqual (-52429, bmp.GetPixel (80, 8).ToArgb (), "80,8");
  1482. Assert.AreEqual (-52429, bmp.GetPixel (80, 12).ToArgb (), "80,12");
  1483. Assert.AreEqual (-52429, bmp.GetPixel (80, 16).ToArgb (), "80,16");
  1484. Assert.AreEqual (-52429, bmp.GetPixel (80, 20).ToArgb (), "80,20");
  1485. Assert.AreEqual (-52429, bmp.GetPixel (80, 24).ToArgb (), "80,24");
  1486. Assert.AreEqual (-52429, bmp.GetPixel (80, 28).ToArgb (), "80,28");
  1487. Assert.AreEqual (-52429, bmp.GetPixel (80, 32).ToArgb (), "80,32");
  1488. Assert.AreEqual (-52429, bmp.GetPixel (80, 36).ToArgb (), "80,36");
  1489. Assert.AreEqual (-52429, bmp.GetPixel (80, 40).ToArgb (), "80,40");
  1490. Assert.AreEqual (0, bmp.GetPixel (80, 44).ToArgb (), "80,44");
  1491. Assert.AreEqual (-6750157, bmp.GetPixel (80, 48).ToArgb (), "80,48");
  1492. Assert.AreEqual (-6750157, bmp.GetPixel (80, 52).ToArgb (), "80,52");
  1493. Assert.AreEqual (-6750157, bmp.GetPixel (80, 56).ToArgb (), "80,56");
  1494. Assert.AreEqual (-6750157, bmp.GetPixel (80, 60).ToArgb (), "80,60");
  1495. Assert.AreEqual (-6750157, bmp.GetPixel (80, 64).ToArgb (), "80,64");
  1496. Assert.AreEqual (-6750157, bmp.GetPixel (80, 68).ToArgb (), "80,68");
  1497. Assert.AreEqual (-6750157, bmp.GetPixel (80, 72).ToArgb (), "80,72");
  1498. Assert.AreEqual (-14935012, bmp.GetPixel (80, 76).ToArgb (), "80,76");
  1499. Assert.AreEqual (-65383, bmp.GetPixel (80, 80).ToArgb (), "80,80");
  1500. Assert.AreEqual (-65383, bmp.GetPixel (80, 84).ToArgb (), "80,84");
  1501. Assert.AreEqual (-65383, bmp.GetPixel (80, 88).ToArgb (), "80,88");
  1502. Assert.AreEqual (-65383, bmp.GetPixel (80, 92).ToArgb (), "80,92");
  1503. Assert.AreEqual (0, bmp.GetPixel (84, 0).ToArgb (), "84,0");
  1504. Assert.AreEqual (0, bmp.GetPixel (84, 4).ToArgb (), "84,4");
  1505. Assert.AreEqual (-52429, bmp.GetPixel (84, 8).ToArgb (), "84,8");
  1506. Assert.AreEqual (-52429, bmp.GetPixel (84, 12).ToArgb (), "84,12");
  1507. Assert.AreEqual (-52429, bmp.GetPixel (84, 16).ToArgb (), "84,16");
  1508. Assert.AreEqual (-52429, bmp.GetPixel (84, 20).ToArgb (), "84,20");
  1509. Assert.AreEqual (-52429, bmp.GetPixel (84, 24).ToArgb (), "84,24");
  1510. Assert.AreEqual (-52429, bmp.GetPixel (84, 28).ToArgb (), "84,28");
  1511. Assert.AreEqual (-52429, bmp.GetPixel (84, 32).ToArgb (), "84,32");
  1512. Assert.AreEqual (-52429, bmp.GetPixel (84, 36).ToArgb (), "84,36");
  1513. Assert.AreEqual (-14935012, bmp.GetPixel (84, 40).ToArgb (), "84,40");
  1514. Assert.AreEqual (0, bmp.GetPixel (84, 44).ToArgb (), "84,44");
  1515. Assert.AreEqual (-14935012, bmp.GetPixel (84, 48).ToArgb (), "84,48");
  1516. Assert.AreEqual (-6750157, bmp.GetPixel (84, 52).ToArgb (), "84,52");
  1517. Assert.AreEqual (-6750157, bmp.GetPixel (84, 56).ToArgb (), "84,56");
  1518. Assert.AreEqual (-6750157, bmp.GetPixel (84, 60).ToArgb (), "84,60");
  1519. Assert.AreEqual (-6750157, bmp.GetPixel (84, 64).ToArgb (), "84,64");
  1520. Assert.AreEqual (-6750157, bmp.GetPixel (84, 68).ToArgb (), "84,68");
  1521. Assert.AreEqual (-6750157, bmp.GetPixel (84, 72).ToArgb (), "84,72");
  1522. Assert.AreEqual (0, bmp.GetPixel (84, 76).ToArgb (), "84,76");
  1523. Assert.AreEqual (-65383, bmp.GetPixel (84, 80).ToArgb (), "84,80");
  1524. Assert.AreEqual (-65383, bmp.GetPixel (84, 84).ToArgb (), "84,84");
  1525. Assert.AreEqual (-65383, bmp.GetPixel (84, 88).ToArgb (), "84,88");
  1526. Assert.AreEqual (-65383, bmp.GetPixel (84, 92).ToArgb (), "84,92");
  1527. Assert.AreEqual (0, bmp.GetPixel (88, 0).ToArgb (), "88,0");
  1528. Assert.AreEqual (-3342490, bmp.GetPixel (88, 4).ToArgb (), "88,4");
  1529. Assert.AreEqual (-14935012, bmp.GetPixel (88, 8).ToArgb (), "88,8");
  1530. Assert.AreEqual (-52429, bmp.GetPixel (88, 12).ToArgb (), "88,12");
  1531. Assert.AreEqual (-52429, bmp.GetPixel (88, 16).ToArgb (), "88,16");
  1532. Assert.AreEqual (-52429, bmp.GetPixel (88, 20).ToArgb (), "88,20");
  1533. Assert.AreEqual (-52429, bmp.GetPixel (88, 24).ToArgb (), "88,24");
  1534. Assert.AreEqual (-52429, bmp.GetPixel (88, 28).ToArgb (), "88,28");
  1535. Assert.AreEqual (-52429, bmp.GetPixel (88, 32).ToArgb (), "88,32");
  1536. Assert.AreEqual (-52429, bmp.GetPixel (88, 36).ToArgb (), "88,36");
  1537. Assert.AreEqual (0, bmp.GetPixel (88, 40).ToArgb (), "88,40");
  1538. Assert.AreEqual (-16777063, bmp.GetPixel (88, 44).ToArgb (), "88,44");
  1539. Assert.AreEqual (0, bmp.GetPixel (88, 48).ToArgb (), "88,48");
  1540. Assert.AreEqual (-6750157, bmp.GetPixel (88, 52).ToArgb (), "88,52");
  1541. Assert.AreEqual (-6750157, bmp.GetPixel (88, 56).ToArgb (), "88,56");
  1542. Assert.AreEqual (-6750157, bmp.GetPixel (88, 60).ToArgb (), "88,60");
  1543. Assert.AreEqual (-6750157, bmp.GetPixel (88, 64).ToArgb (), "88,64");
  1544. Assert.AreEqual (-6750157, bmp.GetPixel (88, 68).ToArgb (), "88,68");
  1545. Assert.AreEqual (-6750157, bmp.GetPixel (88, 72).ToArgb (), "88,72");
  1546. Assert.AreEqual (0, bmp.GetPixel (88, 76).ToArgb (), "88,76");
  1547. Assert.AreEqual (-65383, bmp.GetPixel (88, 80).ToArgb (), "88,80");
  1548. Assert.AreEqual (-65383, bmp.GetPixel (88, 84).ToArgb (), "88,84");
  1549. Assert.AreEqual (-65383, bmp.GetPixel (88, 88).ToArgb (), "88,88");
  1550. Assert.AreEqual (-65383, bmp.GetPixel (88, 92).ToArgb (), "88,92");
  1551. Assert.AreEqual (-14935012, bmp.GetPixel (92, 0).ToArgb (), "92,0");
  1552. Assert.AreEqual (-3342490, bmp.GetPixel (92, 4).ToArgb (), "92,4");
  1553. Assert.AreEqual (-14935012, bmp.GetPixel (92, 8).ToArgb (), "92,8");
  1554. Assert.AreEqual (0, bmp.GetPixel (92, 12).ToArgb (), "92,12");
  1555. Assert.AreEqual (-52429, bmp.GetPixel (92, 16).ToArgb (), "92,16");
  1556. Assert.AreEqual (-52429, bmp.GetPixel (92, 20).ToArgb (), "92,20");
  1557. Assert.AreEqual (-52429, bmp.GetPixel (92, 24).ToArgb (), "92,24");
  1558. Assert.AreEqual (-52429, bmp.GetPixel (92, 28).ToArgb (), "92,28");
  1559. Assert.AreEqual (-14935012, bmp.GetPixel (92, 32).ToArgb (), "92,32");
  1560. Assert.AreEqual (0, bmp.GetPixel (92, 36).ToArgb (), "92,36");
  1561. Assert.AreEqual (0, bmp.GetPixel (92, 40).ToArgb (), "92,40");
  1562. Assert.AreEqual (0, bmp.GetPixel (92, 44).ToArgb (), "92,44");
  1563. Assert.AreEqual (0, bmp.GetPixel (92, 48).ToArgb (), "92,48");
  1564. Assert.AreEqual (0, bmp.GetPixel (92, 52).ToArgb (), "92,52");
  1565. Assert.AreEqual (-6750157, bmp.GetPixel (92, 56).ToArgb (), "92,56");
  1566. Assert.AreEqual (-6750157, bmp.GetPixel (92, 60).ToArgb (), "92,60");
  1567. Assert.AreEqual (-6750157, bmp.GetPixel (92, 64).ToArgb (), "92,64");
  1568. Assert.AreEqual (-6750157, bmp.GetPixel (92, 68).ToArgb (), "92,68");
  1569. Assert.AreEqual (0, bmp.GetPixel (92, 72).ToArgb (), "92,72");
  1570. Assert.AreEqual (0, bmp.GetPixel (92, 76).ToArgb (), "92,76");
  1571. Assert.AreEqual (-65383, bmp.GetPixel (92, 80).ToArgb (), "92,80");
  1572. Assert.AreEqual (-65383, bmp.GetPixel (92, 84).ToArgb (), "92,84");
  1573. Assert.AreEqual (-65383, bmp.GetPixel (92, 88).ToArgb (), "92,88");
  1574. Assert.AreEqual (-65383, bmp.GetPixel (92, 92).ToArgb (), "92,92");
  1575. #endif
  1576. }
  1577. }
  1578. [Test]
  1579. [Category ("NotWorking")]
  1580. public void Bitmat96Data ()
  1581. {
  1582. string sInFile = getInFile ("bitmaps/96x96x256.ico");
  1583. using (Bitmap bmp = new Bitmap (sInFile)) {
  1584. BitmapData data = bmp.LockBits (new Rectangle (0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
  1585. try {
  1586. Assert.AreEqual (bmp.Height, data.Height, "Height");
  1587. Assert.AreEqual (bmp.Width, data.Width, "Width");
  1588. Assert.AreEqual (PixelFormat.Format24bppRgb, data.PixelFormat, "PixelFormat");
  1589. int size = data.Height * data.Stride;
  1590. unsafe {
  1591. byte* scan = (byte*) data.Scan0;
  1592. #if false
  1593. // 97 is prime (so we're not affected by a recurring pattern)
  1594. for (int p = 0; p < size; p += 97) {
  1595. Console.WriteLine ("\t\t\t\t\t\tAssert.AreEqual ({0}, *(scan + {1}), \"{1}\");", *(scan + p), p);
  1596. }
  1597. #else
  1598. // sampling values from a well known bitmap
  1599. Assert.AreEqual (0, *(scan + 0), "0");
  1600. Assert.AreEqual (0, *(scan + 97), "97");
  1601. Assert.AreEqual (0, *(scan + 194), "194");
  1602. Assert.AreEqual (0, *(scan + 291), "291");
  1603. Assert.AreEqual (0, *(scan + 388), "388");
  1604. Assert.AreEqual (28, *(scan + 485), "485");
  1605. Assert.AreEqual (0, *(scan + 582), "582");
  1606. Assert.AreEqual (28, *(scan + 679), "679");
  1607. Assert.AreEqual (255, *(scan + 776), "776");
  1608. Assert.AreEqual (0, *(scan + 873), "873");
  1609. Assert.AreEqual (255, *(scan + 970), "970");
  1610. Assert.AreEqual (255, *(scan + 1067), "1067");
  1611. Assert.AreEqual (0, *(scan + 1164), "1164");
  1612. Assert.AreEqual (255, *(scan + 1261), "1261");
  1613. Assert.AreEqual (255, *(scan + 1358), "1358");
  1614. Assert.AreEqual (0, *(scan + 1455), "1455");
  1615. Assert.AreEqual (255, *(scan + 1552), "1552");
  1616. Assert.AreEqual (255, *(scan + 1649), "1649");
  1617. Assert.AreEqual (0, *(scan + 1746), "1746");
  1618. Assert.AreEqual (255, *(scan + 1843), "1843");
  1619. Assert.AreEqual (255, *(scan + 1940), "1940");
  1620. Assert.AreEqual (0, *(scan + 2037), "2037");
  1621. Assert.AreEqual (255, *(scan + 2134), "2134");
  1622. Assert.AreEqual (255, *(scan + 2231), "2231");
  1623. Assert.AreEqual (0, *(scan + 2328), "2328");
  1624. Assert.AreEqual (255, *(scan + 2425), "2425");
  1625. Assert.AreEqual (255, *(scan + 2522), "2522");
  1626. Assert.AreEqual (0, *(scan + 2619), "2619");
  1627. Assert.AreEqual (255, *(scan + 2716), "2716");
  1628. Assert.AreEqual (255, *(scan + 2813), "2813");
  1629. Assert.AreEqual (0, *(scan + 2910), "2910");
  1630. Assert.AreEqual (255, *(scan + 3007), "3007");
  1631. Assert.AreEqual (255, *(scan + 3104), "3104");
  1632. Assert.AreEqual (0, *(scan + 3201), "3201");
  1633. Assert.AreEqual (255, *(scan + 3298), "3298");
  1634. Assert.AreEqual (255, *(scan + 3395), "3395");
  1635. Assert.AreEqual (0, *(scan + 3492), "3492");
  1636. Assert.AreEqual (0, *(scan + 3589), "3589");
  1637. Assert.AreEqual (255, *(scan + 3686), "3686");
  1638. Assert.AreEqual (0, *(scan + 3783), "3783");
  1639. Assert.AreEqual (0, *(scan + 3880), "3880");
  1640. Assert.AreEqual (255, *(scan + 3977), "3977");
  1641. Assert.AreEqual (0, *(scan + 4074), "4074");
  1642. Assert.AreEqual (0, *(scan + 4171), "4171");
  1643. Assert.AreEqual (255, *(scan + 4268), "4268");
  1644. Assert.AreEqual (0, *(scan + 4365), "4365");
  1645. Assert.AreEqual (28, *(scan + 4462), "4462");
  1646. Assert.AreEqual (255, *(scan + 4559), "4559");
  1647. Assert.AreEqual (0, *(scan + 4656), "4656");
  1648. Assert.AreEqual (51, *(scan + 4753), "4753");
  1649. Assert.AreEqual (255, *(scan + 4850), "4850");
  1650. Assert.AreEqual (0, *(scan + 4947), "4947");
  1651. Assert.AreEqual (51, *(scan + 5044), "5044");
  1652. Assert.AreEqual (255, *(scan + 5141), "5141");
  1653. Assert.AreEqual (0, *(scan + 5238), "5238");
  1654. Assert.AreEqual (51, *(scan + 5335), "5335");
  1655. Assert.AreEqual (255, *(scan + 5432), "5432");
  1656. Assert.AreEqual (0, *(scan + 5529), "5529");
  1657. Assert.AreEqual (51, *(scan + 5626), "5626");
  1658. Assert.AreEqual (255, *(scan + 5723), "5723");
  1659. Assert.AreEqual (0, *(scan + 5820), "5820");
  1660. Assert.AreEqual (51, *(scan + 5917), "5917");
  1661. Assert.AreEqual (255, *(scan + 6014), "6014");
  1662. Assert.AreEqual (0, *(scan + 6111), "6111");
  1663. Assert.AreEqual (51, *(scan + 6208), "6208");
  1664. Assert.AreEqual (255, *(scan + 6305), "6305");
  1665. Assert.AreEqual (0, *(scan + 6402), "6402");
  1666. Assert.AreEqual (51, *(scan + 6499), "6499");
  1667. Assert.AreEqual (255, *(scan + 6596), "6596");
  1668. Assert.AreEqual (0, *(scan + 6693), "6693");
  1669. Assert.AreEqual (51, *(scan + 6790), "6790");
  1670. Assert.AreEqual (255, *(scan + 6887), "6887");
  1671. Assert.AreEqual (0, *(scan + 6984), "6984");
  1672. Assert.AreEqual (51, *(scan + 7081), "7081");
  1673. Assert.AreEqual (255, *(scan + 7178), "7178");
  1674. Assert.AreEqual (0, *(scan + 7275), "7275");
  1675. Assert.AreEqual (51, *(scan + 7372), "7372");
  1676. Assert.AreEqual (255, *(scan + 7469), "7469");
  1677. Assert.AreEqual (0, *(scan + 7566), "7566");
  1678. Assert.AreEqual (51, *(scan + 7663), "7663");
  1679. Assert.AreEqual (255, *(scan + 7760), "7760");
  1680. Assert.AreEqual (0, *(scan + 7857), "7857");
  1681. Assert.AreEqual (51, *(scan + 7954), "7954");
  1682. Assert.AreEqual (255, *(scan + 8051), "8051");
  1683. Assert.AreEqual (0, *(scan + 8148), "8148");
  1684. Assert.AreEqual (51, *(scan + 8245), "8245");
  1685. Assert.AreEqual (255, *(scan + 8342), "8342");
  1686. Assert.AreEqual (0, *(scan + 8439), "8439");
  1687. Assert.AreEqual (51, *(scan + 8536), "8536");
  1688. Assert.AreEqual (28, *(scan + 8633), "8633");
  1689. Assert.AreEqual (0, *(scan + 8730), "8730");
  1690. Assert.AreEqual (51, *(scan + 8827), "8827");
  1691. Assert.AreEqual (0, *(scan + 8924), "8924");
  1692. Assert.AreEqual (0, *(scan + 9021), "9021");
  1693. Assert.AreEqual (51, *(scan + 9118), "9118");
  1694. Assert.AreEqual (0, *(scan + 9215), "9215");
  1695. Assert.AreEqual (0, *(scan + 9312), "9312");
  1696. Assert.AreEqual (51, *(scan + 9409), "9409");
  1697. Assert.AreEqual (0, *(scan + 9506), "9506");
  1698. Assert.AreEqual (0, *(scan + 9603), "9603");
  1699. Assert.AreEqual (51, *(scan + 9700), "9700");
  1700. Assert.AreEqual (0, *(scan + 9797), "9797");
  1701. Assert.AreEqual (28, *(scan + 9894), "9894");
  1702. Assert.AreEqual (51, *(scan + 9991), "9991");
  1703. Assert.AreEqual (0, *(scan + 10088), "10088");
  1704. Assert.AreEqual (0, *(scan + 10185), "10185");
  1705. Assert.AreEqual (51, *(scan + 10282), "10282");
  1706. Assert.AreEqual (0, *(scan + 10379), "10379");
  1707. Assert.AreEqual (0, *(scan + 10476), "10476");
  1708. Assert.AreEqual (51, *(scan + 10573), "10573");
  1709. Assert.AreEqual (0, *(scan + 10670), "10670");
  1710. Assert.AreEqual (0, *(scan + 10767), "10767");
  1711. Assert.AreEqual (51, *(scan + 10864), "10864");
  1712. Assert.AreEqual (204, *(scan + 10961), "10961");
  1713. Assert.AreEqual (0, *(scan + 11058), "11058");
  1714. Assert.AreEqual (51, *(scan + 11155), "11155");
  1715. Assert.AreEqual (204, *(scan + 11252), "11252");
  1716. Assert.AreEqual (0, *(scan + 11349), "11349");
  1717. Assert.AreEqual (51, *(scan + 11446), "11446");
  1718. Assert.AreEqual (204, *(scan + 11543), "11543");
  1719. Assert.AreEqual (0, *(scan + 11640), "11640");
  1720. Assert.AreEqual (51, *(scan + 11737), "11737");
  1721. Assert.AreEqual (204, *(scan + 11834), "11834");
  1722. Assert.AreEqual (0, *(scan + 11931), "11931");
  1723. Assert.AreEqual (51, *(scan + 12028), "12028");
  1724. Assert.AreEqual (204, *(scan + 12125), "12125");
  1725. Assert.AreEqual (0, *(scan + 12222), "12222");
  1726. Assert.AreEqual (51, *(scan + 12319), "12319");
  1727. Assert.AreEqual (204, *(scan + 12416), "12416");
  1728. Assert.AreEqual (28, *(scan + 12513), "12513");
  1729. Assert.AreEqual (51, *(scan + 12610), "12610");
  1730. Assert.AreEqual (204, *(scan + 12707), "12707");
  1731. Assert.AreEqual (0, *(scan + 12804), "12804");
  1732. Assert.AreEqual (28, *(scan + 12901), "12901");
  1733. Assert.AreEqual (204, *(scan + 12998), "12998");
  1734. Assert.AreEqual (0, *(scan + 13095), "13095");
  1735. Assert.AreEqual (0, *(scan + 13192), "13192");
  1736. Assert.AreEqual (204, *(scan + 13289), "13289");
  1737. Assert.AreEqual (0, *(scan + 13386), "13386");
  1738. Assert.AreEqual (0, *(scan + 13483), "13483");
  1739. Assert.AreEqual (204, *(scan + 13580), "13580");
  1740. Assert.AreEqual (0, *(scan + 13677), "13677");
  1741. Assert.AreEqual (28, *(scan + 13774), "13774");
  1742. Assert.AreEqual (204, *(scan + 13871), "13871");
  1743. Assert.AreEqual (0, *(scan + 13968), "13968");
  1744. Assert.AreEqual (0, *(scan + 14065), "14065");
  1745. Assert.AreEqual (204, *(scan + 14162), "14162");
  1746. Assert.AreEqual (0, *(scan + 14259), "14259");
  1747. Assert.AreEqual (0, *(scan + 14356), "14356");
  1748. Assert.AreEqual (204, *(scan + 14453), "14453");
  1749. Assert.AreEqual (0, *(scan + 14550), "14550");
  1750. Assert.AreEqual (0, *(scan + 14647), "14647");
  1751. Assert.AreEqual (204, *(scan + 14744), "14744");
  1752. Assert.AreEqual (0, *(scan + 14841), "14841");
  1753. Assert.AreEqual (0, *(scan + 14938), "14938");
  1754. Assert.AreEqual (204, *(scan + 15035), "15035");
  1755. Assert.AreEqual (0, *(scan + 15132), "15132");
  1756. Assert.AreEqual (0, *(scan + 15229), "15229");
  1757. Assert.AreEqual (204, *(scan + 15326), "15326");
  1758. Assert.AreEqual (0, *(scan + 15423), "15423");
  1759. Assert.AreEqual (0, *(scan + 15520), "15520");
  1760. Assert.AreEqual (204, *(scan + 15617), "15617");
  1761. Assert.AreEqual (0, *(scan + 15714), "15714");
  1762. Assert.AreEqual (0, *(scan + 15811), "15811");
  1763. Assert.AreEqual (204, *(scan + 15908), "15908");
  1764. Assert.AreEqual (0, *(scan + 16005), "16005");
  1765. Assert.AreEqual (0, *(scan + 16102), "16102");
  1766. Assert.AreEqual (204, *(scan + 16199), "16199");
  1767. Assert.AreEqual (0, *(scan + 16296), "16296");
  1768. Assert.AreEqual (0, *(scan + 16393), "16393");
  1769. Assert.AreEqual (204, *(scan + 16490), "16490");
  1770. Assert.AreEqual (0, *(scan + 16587), "16587");
  1771. Assert.AreEqual (0, *(scan + 16684), "16684");
  1772. Assert.AreEqual (204, *(scan + 16781), "16781");
  1773. Assert.AreEqual (0, *(scan + 16878), "16878");
  1774. Assert.AreEqual (0, *(scan + 16975), "16975");
  1775. Assert.AreEqual (204, *(scan + 17072), "17072");
  1776. Assert.AreEqual (0, *(scan + 17169), "17169");
  1777. Assert.AreEqual (0, *(scan + 17266), "17266");
  1778. Assert.AreEqual (204, *(scan + 17363), "17363");
  1779. Assert.AreEqual (0, *(scan + 17460), "17460");
  1780. Assert.AreEqual (0, *(scan + 17557), "17557");
  1781. Assert.AreEqual (28, *(scan + 17654), "17654");
  1782. Assert.AreEqual (0, *(scan + 17751), "17751");
  1783. Assert.AreEqual (0, *(scan + 17848), "17848");
  1784. Assert.AreEqual (0, *(scan + 17945), "17945");
  1785. Assert.AreEqual (28, *(scan + 18042), "18042");
  1786. Assert.AreEqual (0, *(scan + 18139), "18139");
  1787. Assert.AreEqual (0, *(scan + 18236), "18236");
  1788. Assert.AreEqual (51, *(scan + 18333), "18333");
  1789. Assert.AreEqual (28, *(scan + 18430), "18430");
  1790. Assert.AreEqual (0, *(scan + 18527), "18527");
  1791. Assert.AreEqual (51, *(scan + 18624), "18624");
  1792. Assert.AreEqual (0, *(scan + 18721), "18721");
  1793. Assert.AreEqual (28, *(scan + 18818), "18818");
  1794. Assert.AreEqual (51, *(scan + 18915), "18915");
  1795. Assert.AreEqual (255, *(scan + 19012), "19012");
  1796. Assert.AreEqual (51, *(scan + 19109), "19109");
  1797. Assert.AreEqual (51, *(scan + 19206), "19206");
  1798. Assert.AreEqual (255, *(scan + 19303), "19303");
  1799. Assert.AreEqual (51, *(scan + 19400), "19400");
  1800. Assert.AreEqual (51, *(scan + 19497), "19497");
  1801. Assert.AreEqual (255, *(scan + 19594), "19594");
  1802. Assert.AreEqual (51, *(scan + 19691), "19691");
  1803. Assert.AreEqual (51, *(scan + 19788), "19788");
  1804. Assert.AreEqual (255, *(scan + 19885), "19885");
  1805. Assert.AreEqual (51, *(scan + 19982), "19982");
  1806. Assert.AreEqual (51, *(scan + 20079), "20079");
  1807. Assert.AreEqual (255, *(scan + 20176), "20176");
  1808. Assert.AreEqual (51, *(scan + 20273), "20273");
  1809. Assert.AreEqual (51, *(scan + 20370), "20370");
  1810. Assert.AreEqual (255, *(scan + 20467), "20467");
  1811. Assert.AreEqual (51, *(scan + 20564), "20564");
  1812. Assert.AreEqual (51, *(scan + 20661), "20661");
  1813. Assert.AreEqual (255, *(scan + 20758), "20758");
  1814. Assert.AreEqual (51, *(scan + 20855), "20855");
  1815. Assert.AreEqual (51, *(scan + 20952), "20952");
  1816. Assert.AreEqual (255, *(scan + 21049), "21049");
  1817. Assert.AreEqual (51, *(scan + 21146), "21146");
  1818. Assert.AreEqual (51, *(scan + 21243), "21243");
  1819. Assert.AreEqual (28, *(scan + 21340), "21340");
  1820. Assert.AreEqual (51, *(scan + 21437), "21437");
  1821. Assert.AreEqual (51, *(scan + 21534), "21534");
  1822. Assert.AreEqual (0, *(scan + 21631), "21631");
  1823. Assert.AreEqual (51, *(scan + 21728), "21728");
  1824. Assert.AreEqual (28, *(scan + 21825), "21825");
  1825. Assert.AreEqual (0, *(scan + 21922), "21922");
  1826. Assert.AreEqual (51, *(scan + 22019), "22019");
  1827. Assert.AreEqual (28, *(scan + 22116), "22116");
  1828. Assert.AreEqual (0, *(scan + 22213), "22213");
  1829. Assert.AreEqual (51, *(scan + 22310), "22310");
  1830. Assert.AreEqual (0, *(scan + 22407), "22407");
  1831. Assert.AreEqual (0, *(scan + 22504), "22504");
  1832. Assert.AreEqual (51, *(scan + 22601), "22601");
  1833. Assert.AreEqual (0, *(scan + 22698), "22698");
  1834. Assert.AreEqual (0, *(scan + 22795), "22795");
  1835. Assert.AreEqual (51, *(scan + 22892), "22892");
  1836. Assert.AreEqual (28, *(scan + 22989), "22989");
  1837. Assert.AreEqual (0, *(scan + 23086), "23086");
  1838. Assert.AreEqual (28, *(scan + 23183), "23183");
  1839. Assert.AreEqual (153, *(scan + 23280), "23280");
  1840. Assert.AreEqual (28, *(scan + 23377), "23377");
  1841. Assert.AreEqual (0, *(scan + 23474), "23474");
  1842. Assert.AreEqual (153, *(scan + 23571), "23571");
  1843. Assert.AreEqual (28, *(scan + 23668), "23668");
  1844. Assert.AreEqual (0, *(scan + 23765), "23765");
  1845. Assert.AreEqual (153, *(scan + 23862), "23862");
  1846. Assert.AreEqual (0, *(scan + 23959), "23959");
  1847. Assert.AreEqual (28, *(scan + 24056), "24056");
  1848. Assert.AreEqual (153, *(scan + 24153), "24153");
  1849. Assert.AreEqual (0, *(scan + 24250), "24250");
  1850. Assert.AreEqual (153, *(scan + 24347), "24347");
  1851. Assert.AreEqual (153, *(scan + 24444), "24444");
  1852. Assert.AreEqual (0, *(scan + 24541), "24541");
  1853. Assert.AreEqual (153, *(scan + 24638), "24638");
  1854. Assert.AreEqual (153, *(scan + 24735), "24735");
  1855. Assert.AreEqual (0, *(scan + 24832), "24832");
  1856. Assert.AreEqual (153, *(scan + 24929), "24929");
  1857. Assert.AreEqual (153, *(scan + 25026), "25026");
  1858. Assert.AreEqual (0, *(scan + 25123), "25123");
  1859. Assert.AreEqual (153, *(scan + 25220), "25220");
  1860. Assert.AreEqual (153, *(scan + 25317), "25317");
  1861. Assert.AreEqual (0, *(scan + 25414), "25414");
  1862. Assert.AreEqual (153, *(scan + 25511), "25511");
  1863. Assert.AreEqual (153, *(scan + 25608), "25608");
  1864. Assert.AreEqual (0, *(scan + 25705), "25705");
  1865. Assert.AreEqual (153, *(scan + 25802), "25802");
  1866. Assert.AreEqual (153, *(scan + 25899), "25899");
  1867. Assert.AreEqual (0, *(scan + 25996), "25996");
  1868. Assert.AreEqual (153, *(scan + 26093), "26093");
  1869. Assert.AreEqual (153, *(scan + 26190), "26190");
  1870. Assert.AreEqual (0, *(scan + 26287), "26287");
  1871. Assert.AreEqual (153, *(scan + 26384), "26384");
  1872. Assert.AreEqual (153, *(scan + 26481), "26481");
  1873. Assert.AreEqual (0, *(scan + 26578), "26578");
  1874. Assert.AreEqual (153, *(scan + 26675), "26675");
  1875. Assert.AreEqual (153, *(scan + 26772), "26772");
  1876. Assert.AreEqual (28, *(scan + 26869), "26869");
  1877. Assert.AreEqual (153, *(scan + 26966), "26966");
  1878. Assert.AreEqual (28, *(scan + 27063), "27063");
  1879. Assert.AreEqual (28, *(scan + 27160), "27160");
  1880. Assert.AreEqual (28, *(scan + 27257), "27257");
  1881. Assert.AreEqual (0, *(scan + 27354), "27354");
  1882. Assert.AreEqual (0, *(scan + 27451), "27451");
  1883. Assert.AreEqual (0, *(scan + 27548), "27548");
  1884. Assert.AreEqual (0, *(scan + 27645), "27645");
  1885. #endif
  1886. }
  1887. }
  1888. finally {
  1889. bmp.UnlockBits (data);
  1890. }
  1891. }
  1892. }
  1893. [Test]
  1894. public void Xp32bppIconFeatures ()
  1895. {
  1896. string sInFile = getInFile ("bitmaps/32bpp.ico");
  1897. using (Bitmap bmp = new Bitmap (sInFile)) {
  1898. GraphicsUnit unit = GraphicsUnit.World;
  1899. RectangleF rect = bmp.GetBounds (ref unit);
  1900. Assert.IsTrue (bmp.RawFormat.Equals (ImageFormat.Icon), "Icon");
  1901. // note that image is "promoted" to 32bits
  1902. Assert.AreEqual (PixelFormat.Format32bppArgb, bmp.PixelFormat);
  1903. Assert.AreEqual (73746, bmp.Flags, "bmp.Flags");
  1904. Assert.AreEqual (0, bmp.Palette.Entries.Length, "Palette");
  1905. Assert.AreEqual (1, bmp.FrameDimensionsList.Length, "FrameDimensionsList");
  1906. Assert.AreEqual (0, bmp.PropertyIdList.Length, "PropertyIdList");
  1907. Assert.AreEqual (0, bmp.PropertyItems.Length, "PropertyItems");
  1908. #if NET_2_0
  1909. Assert.IsNull (bmp.Tag, "Tag");
  1910. #endif
  1911. Assert.AreEqual (96.0f, bmp.HorizontalResolution, "HorizontalResolution");
  1912. Assert.AreEqual (96.0f, bmp.VerticalResolution, "VerticalResolution");
  1913. Assert.AreEqual (16, bmp.Width, "bmp.Width");
  1914. Assert.AreEqual (16, bmp.Height, "bmp.Height");
  1915. Assert.AreEqual (0, rect.X, "rect.X");
  1916. Assert.AreEqual (0, rect.Y, "rect.Y");
  1917. Assert.AreEqual (16, rect.Width, "rect.Width");
  1918. Assert.AreEqual (16, rect.Height, "rect.Height");
  1919. Assert.AreEqual (16, bmp.Size.Width, "bmp.Size.Width");
  1920. Assert.AreEqual (16, bmp.Size.Height, "bmp.Size.Height");
  1921. }
  1922. }
  1923. private void Save (PixelFormat original, PixelFormat expected, bool colorCheck)
  1924. {
  1925. string sOutFile = "linerect" + getOutSufix () + ".ico";
  1926. // Save
  1927. Bitmap bmp = new Bitmap (100, 100, original);
  1928. Graphics gr = Graphics.FromImage (bmp);
  1929. using (Pen p = new Pen (Color.Red, 2)) {
  1930. gr.DrawLine (p, 10.0F, 10.0F, 90.0F, 90.0F);
  1931. gr.DrawRectangle (p, 10.0F, 10.0F, 80.0F, 80.0F);
  1932. }
  1933. try {
  1934. // there's no encoder, so we're not saving a ICO but the alpha
  1935. // bit get sets so it's not like saving a bitmap either
  1936. bmp.Save (sOutFile, ImageFormat.Icon);
  1937. // Load
  1938. using (Bitmap bmpLoad = new Bitmap (sOutFile)) {
  1939. Assert.AreEqual (ImageFormat.Png, bmpLoad.RawFormat, "Png");
  1940. Assert.AreEqual (expected, bmpLoad.PixelFormat, "PixelFormat");
  1941. if (colorCheck) {
  1942. Color color = bmpLoad.GetPixel (10, 10);
  1943. Assert.AreEqual (Color.FromArgb (255, 255, 0, 0), color, "Red");
  1944. }
  1945. }
  1946. }
  1947. finally {
  1948. gr.Dispose ();
  1949. bmp.Dispose ();
  1950. try {
  1951. File.Delete (sOutFile);
  1952. }
  1953. catch {
  1954. }
  1955. }
  1956. }
  1957. [Test]
  1958. public void Save_24bppRgb ()
  1959. {
  1960. Save (PixelFormat.Format24bppRgb, PixelFormat.Format24bppRgb, true);
  1961. }
  1962. [Test]
  1963. public void Save_32bppRgb ()
  1964. {
  1965. Save (PixelFormat.Format32bppRgb, PixelFormat.Format32bppArgb, true);
  1966. }
  1967. [Test]
  1968. public void Save_32bppArgb ()
  1969. {
  1970. Save (PixelFormat.Format32bppArgb, PixelFormat.Format32bppArgb, true);
  1971. }
  1972. [Test]
  1973. public void Save_32bppPArgb ()
  1974. {
  1975. Save (PixelFormat.Format32bppPArgb, PixelFormat.Format32bppArgb, true);
  1976. }
  1977. [Test]
  1978. [Category ("NotWorking")]
  1979. public void Save_48bppRgb ()
  1980. {
  1981. Save (PixelFormat.Format48bppRgb, PixelFormat.Format48bppRgb, false);
  1982. }
  1983. [Test]
  1984. [Category ("NotWorking")]
  1985. public void Save_64bppArgb ()
  1986. {
  1987. Save (PixelFormat.Format64bppArgb, PixelFormat.Format64bppArgb, false);
  1988. }
  1989. [Test]
  1990. [Category ("NotWorking")]
  1991. public void Save_64bppPArgb ()
  1992. {
  1993. Save (PixelFormat.Format64bppPArgb, PixelFormat.Format64bppArgb, false);
  1994. }
  1995. }
  1996. }