History.xml 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <?xml-stylesheet type="text/xsl" href="../Xsl/doc2html.xsl"?>
  3. <doc>
  4. <title>Vampyre Imaging Library History</title>
  5. <chapter>
  6. <anchor name="top">
  7. <title>Vampyre Imaging Library History</title>
  8. </anchor>
  9. <par>
  10. You can find a listing of Imaging versions on this page.
  11. There is the release date of each version together with
  12. a short note and a list of the most important changes that were made.
  13. You can find the change tags explained here
  14. <link url="#legend">Changes Legend</link>.
  15. </par>
  16. <!-- VERSION 00.26.4 -->
  17. <section>
  18. <mediumcap>Version 0.26.4 - 11th October 2009</mediumcap>
  19. <notes>
  20. For complete list of changes see <keyword>File Notes</keyword>
  21. section at the end of each source file.
  22. </notes>
  23. <bulletlist>
  24. <li>
  25. <keyword>[+]</keyword>
  26. <b>APNG</b> file format (Animated PNG) loading, animating, and saving
  27. added to existing PNG support.
  28. </li>
  29. <li>
  30. <keyword>[+]</keyword>
  31. Arbitrary angle image rotation.
  32. </li>
  33. <li>
  34. <keyword>[*]</keyword>
  35. Mac OS X (Intel) compatibility (garbled LCL bitmaps in Carbon, JPEG 2000 support, ...).
  36. </li>
  37. <li>
  38. <keyword>[+]</keyword>
  39. <b>XPM</b> file format saving added, <b>JPEG 2000</b> file format loading
  40. improved.
  41. </li>
  42. <li>
  43. <keyword>[+/F]</keyword>
  44. New canvas methods: premultiply and unpremultiply alpha.
  45. New methods for TFastARGB32Canvas: InvertColors, DrawAlpha/StretchDrawAlpha.
  46. Fixed DrawAlpha/StretchDrawAlpha destination alpha calculation.
  47. </li>
  48. <li>
  49. <keyword>[+]</keyword>
  50. Three new extensions in <keyword>Extras/Extensions</keyword> directory:
  51. <ref>ImagingJpegIJL.pas</ref> uses Intel Jpeg Library to load/save Jpegs (DLL needed),
  52. <ref>ImagingSquishLib.pas</ref> uses Squish DXTC library with Imaging (DLL needed),
  53. <ref>ElderImagerySky.pas</ref> loads SKY images from Daggerfall.
  54. </li>
  55. <li>
  56. <keyword>[+]</keyword>
  57. Conversions between RGB and YCoCg colorspaces.
  58. </li>
  59. <li>
  60. <keyword>[F]</keyword>
  61. Bug fixes: loading of some GIFs when using D2009+ failed,
  62. bugged XPM loading in Linux, indexed images resizing leak,
  63. PNM saving using D2009+, DXT3 alpha encoding, RGB>>CMYK conversion,
  64. garbled images in Lazarus GTK IDE.
  65. </li>
  66. <li>
  67. <keyword>[*]</keyword>
  68. Delphi 2010 and Lazarus 0.9.28 compatibility fixes.
  69. </li>
  70. </bulletlist>
  71. </section>
  72. <!-- VERSION 00.26.2 -->
  73. <section>
  74. <mediumcap>Version 0.26.2 - 28th December 2008</mediumcap>
  75. <notes>
  76. For complete list of changes see <keyword>File Notes</keyword>
  77. section at the end of each source file.
  78. </notes>
  79. <bulletlist>
  80. <li>
  81. <keyword>[*]</keyword>
  82. Delphi 2009 and Lazarus 0.9.26 compatibility fixes.
  83. New project files for Delphi 2009 added. Kylix and CLX
  84. stuff removed.
  85. </li>
  86. <li>
  87. <keyword>[+]</keyword>
  88. New canvas methods: flood and boundary fills, color channel
  89. fills, color level adjustment, histogram calculation.
  90. </li>
  91. <li>
  92. <keyword>[+]</keyword>
  93. Animated <b>GIF</b> support rewritten and it now
  94. properly animates all tested GIFs (several thousand, true color ones too).
  95. </li>
  96. <li>
  97. <keyword>[+]</keyword>
  98. Added new <keyword>Extras/Contrib</keyword> directory with
  99. Imaging modifications, extensions, demos, etc. contributed
  100. by users (now with ExtraGIF, NIF loader, and HqResampler).
  101. </li>
  102. <li>
  103. <keyword>[*]</keyword>
  104. Changed LINK defined symbols that control which file formats will be
  105. automatically registered. More in <link url="../Extensions/ExtFileFormats.xml">File Format Extensions</link>
  106. </li>
  107. <li>
  108. <keyword>[+]</keyword>
  109. <b>PSD</b> images with alpha channel are now saved as layers
  110. to get proper transparency when opened in Photoshop.
  111. </li>
  112. <li>
  113. <keyword>[*]</keyword>
  114. Changed conditional compilation of <ref>ImagingComponents.pas</ref>
  115. unit to properly work with LCL widget sets other than
  116. Win32 and GTK.
  117. </li>
  118. <li>
  119. <keyword>[*]</keyword>
  120. Removed linking against libstdc++ library in JPEG 2000 headers in Unix
  121. (replaced with libc and Pascal functions).
  122. </li>
  123. <li>
  124. <keyword>[F]</keyword>
  125. Fixed problem with loading of progressive JPEGs (out of memory)
  126. when using FPC Win32.
  127. </li>
  128. </bulletlist>
  129. </section>
  130. <!-- VERSION 00.26.0 -->
  131. <section>
  132. <mediumcap>Version 0.26.0 - 27th August 2008</mediumcap>
  133. <notes>
  134. For complete list of changes see <keyword>File Notes</keyword>
  135. section at the end of each source file.
  136. </notes>
  137. <bulletlist>
  138. <li>
  139. <keyword>[+]</keyword>
  140. New data formats using 3Dc compression added: <icode>ifATI1N</icode>
  141. and <icode>ifATI2N</icode>.
  142. <b>DDS</b> file format updated to be able to load and save
  143. images in this format.
  144. <b>OpenGL</b> and <b>Direct3D</b> extensions were updated
  145. to allow creating textures in these formats.
  146. </li>
  147. <li>
  148. <keyword>[+]</keyword>
  149. Canvas class was extended with many new methods and effects.
  150. They include image drawing with blending (custom blending factors),
  151. filtered image stretching, nonlinear filters (min, max, median),
  152. point transforms (contrast, brightness, gamma, threshold), and blended
  153. rectangle filling.
  154. </li>
  155. <li>
  156. <keyword>[+]</keyword>
  157. New unit <ref>ImagingBinary.pas</ref> was added to <keyword>Extras</keyword>
  158. extensions with morphologic operations on binary images.
  159. </li>
  160. <li>
  161. <keyword>[+]</keyword>
  162. <b>XPM</b> file format loader was added to <keyword>Extras</keyword>
  163. extensions.
  164. </li>
  165. <li>
  166. <keyword>[E]</keyword>
  167. <b>LCL Imager</b> and <b>Image Browser</b> demos were extended
  168. with new functionality provided by canvas class (blending, filters,
  169. morphology, etc.).
  170. </li>
  171. <li>
  172. <keyword>[*]</keyword>
  173. Updated <b>OpenJpeg</b> library (JPEG 2000) to version with
  174. my CDEF patch that saves JP2 files with alpha properly.
  175. </li>
  176. <li>
  177. <keyword>[*]</keyword>
  178. Changed some file format loaders/savers to be more thread safe
  179. so more images can be loaded concurrently..
  180. </li>
  181. <li>
  182. <keyword>[F]</keyword>
  183. Many bugs in library fixed (<b>GIF</b>, <b>BMP</b>, and <b>PNM</b> loaders,
  184. ConvertSpecial, linear filters, ...).
  185. </li>
  186. </bulletlist>
  187. </section>
  188. <!-- VERSION 00.24.2 -->
  189. <section>
  190. <mediumcap>Version 0.24.2 - 11th December 2007</mediumcap>
  191. <notes>
  192. For complete list of changes see <keyword>File Notes</keyword>
  193. section at the end of each source file.
  194. </notes>
  195. <bulletlist>
  196. <li>
  197. <keyword>[*]</keyword>
  198. Updated <b>OpenJpeg</b> library (JPEG 2000) to latest
  199. revision and added Imaging JPEG support for 64bit Linux.
  200. </li>
  201. <li>
  202. <keyword>[F]</keyword>
  203. Fixed various user reported bugs in file format
  204. support for <b>GIF</b> and <b>JPEG</b> images.
  205. </li>
  206. <li>
  207. <keyword>[*/+]</keyword>
  208. Compatibility changes and project files for new Pascal
  209. compilers/IDEs: Lazarus 0.9.24 (LCL support update),
  210. FPC 2.2, RAD Studio 2007 (project files).
  211. </li>
  212. <li>
  213. <keyword>[D]</keyword>
  214. LCL Imager demo updated - operation timing added. Supports
  215. alpha blending with new Lazarus.
  216. </li>
  217. <li>
  218. <keyword>[+]</keyword>
  219. New features added to OpenGL texture builder: skip mipmap levels
  220. and alternate pow2 texture resizing.
  221. </li>
  222. <li>
  223. <keyword>[+]</keyword>
  224. Pascal translation of Hq resampler with Imaging demo added
  225. to Extras directory.
  226. </li>
  227. <li>
  228. <keyword>[F]</keyword>
  229. Some bugs in library fixed.
  230. </li>
  231. </bulletlist>
  232. </section>
  233. <!-- VERSION 00.24.0 -->
  234. <section>
  235. <mediumcap>Version 0.24.0 - 27th June 2007</mediumcap>
  236. <notes>
  237. For complete list of changes see <keyword>File Notes</keyword>
  238. section at the end of each source file.
  239. </notes>
  240. <bulletlist>
  241. <li>
  242. <keyword>[D]</keyword>
  243. Documentation updated to version <b>0.24</b>.
  244. </li>
  245. <li>
  246. <keyword>[+]</keyword>
  247. <b>TIFF</b> image file format
  248. loading and saving added to <keyword>Extras</keyword>.
  249. Not yet native Object Pascal.
  250. </li>
  251. <li>
  252. <keyword>[+]</keyword>
  253. <b>GIF</b> image file format
  254. loading and saving added to core library.
  255. </li>
  256. <li>
  257. <keyword>[+]</keyword>
  258. New compressed image data format added: <icode>ifBTC</icode>
  259. (block truncation coding).
  260. </li>
  261. <li>
  262. <keyword>[*]</keyword>
  263. Changed headers of some low level interface functions.
  264. </li>
  265. <li>
  266. <keyword>[+]</keyword>
  267. <b>High level</b> interface in <ref>ImagingClasses.pas</ref> unit
  268. was slightly extended.
  269. </li>
  270. <li>
  271. <keyword>[+]</keyword>
  272. Other library enhancements (color conversions for 16bit channels,
  273. new buffered file IO, ...).
  274. </li>
  275. <li>
  276. <keyword>[+/*/F]</keyword>
  277. Compatibility enhancements (Bitmap saving, JPEG loading,
  278. DDS loading/saving,
  279. UNIX compilation, Win64 compilation, FPC compilation, ...).
  280. </li>
  281. <li>
  282. <keyword>[F]</keyword>
  283. Many bugs in library fixed.
  284. </li>
  285. <li>
  286. <keyword>[+]</keyword>
  287. <b>Photoshop PSD</b> image file format
  288. loading and saving added to <keyword>Extras</keyword>.
  289. </li>
  290. </bulletlist>
  291. </section>
  292. <!-- VERSION 00.22.0 -->
  293. <section>
  294. <mediumcap>Version 0.22.0 - 25.01.2007</mediumcap>
  295. <notes>
  296. For complete list of changes see <keyword>File Notes</keyword>
  297. section at the end of each source file.
  298. </notes>
  299. <bulletlist>
  300. <li>
  301. <keyword>[D]</keyword>
  302. Documentation updated to version <b>0.22</b>.
  303. </li>
  304. <li>
  305. <keyword>[E]</keyword>
  306. Some demos were extended, updated, and some bugs were fixed.
  307. </li>
  308. <li>
  309. <keyword>[+]</keyword>
  310. New unit <ref>ImagingColors.pas</ref> added.
  311. Some color space conversion functions are there now.
  312. </li>
  313. <li>
  314. <keyword>[*/F]</keyword>
  315. <b>High level</b> interface in <ref>ImagingClasses.pas</ref> unit
  316. was extended and many bugs were fixed there.
  317. </li>
  318. <li>
  319. <keyword>[+]</keyword>
  320. <b>Canvas</b> class was extended. FrameRect, Rectangle, Ellipse, and Line methods
  321. were added, and you can now specify PenColor, PenMode, and FillMode.
  322. New convolution kernels were added too.
  323. </li>
  324. <li>
  325. <keyword>[+]</keyword>
  326. <b>JPEG 2000</b> image file format
  327. loading and saving added to <keyword>Extras</keyword>.
  328. Not yet native Object Pascal.
  329. </li>
  330. <li>
  331. <keyword>[+]</keyword>
  332. <b>PCX (ZSoft Paintbrush)</b> image file format
  333. loading added to <keyword>Extras</keyword>.
  334. </li>
  335. <li>
  336. <keyword>[+]</keyword>
  337. <b>PBM, PGM, PPM, PAM, PFM (Portable Maps)</b> image file formats
  338. loading and saving added.
  339. </li>
  340. <li>
  341. <keyword>[+]</keyword>
  342. <b>Elder Imagery</b> extension added to <keyword>Extras</keyword>
  343. for loading and saving images from older Bethesda games (Daggerfall mainly).
  344. </li>
  345. <li>
  346. <keyword>[+]</keyword>
  347. Added new <keyword>Extras</keyword> package (located in
  348. <keyword>(ImagingRoot)\Extras</keyword> folder)
  349. with additional extensions, demos, and tools for Imaging.
  350. </li>
  351. <li>
  352. <keyword>[+]</keyword>
  353. Functions added to the low level interface:
  354. <ref>EnumFileFormats</ref>.
  355. </li>
  356. <li>
  357. <keyword>[+/*]</keyword>
  358. Many changes to image file format loader/saver classes
  359. for easier creation of new formats (old formats were updated
  360. and some (Bitmap, DDS) have various parts rewritten).
  361. Some new stuff added (file name masks).
  362. Also file format enumeration functions were added.
  363. </li>
  364. <li>
  365. <keyword>[F]</keyword>
  366. Many bugs in library fixed.
  367. </li>
  368. </bulletlist>
  369. </section>
  370. <!-- VERSION 0.20.0 -->
  371. <section>
  372. <mediumcap>Version 0.20.0 - 30.10.2006</mediumcap>
  373. <bulletlist>
  374. <li>
  375. <keyword>[E]</keyword>
  376. New demo <b>VampConvert</b> replaced old <b>DXTTool</b>.
  377. Demo <b>High Level</b> was removed because other demos
  378. now use high level interface more.
  379. </li>
  380. <li>
  381. <keyword>[+]</keyword>
  382. Added new unit <ref>ImagingCanvases.pas</ref> with
  383. classes for drawing/effects functions added
  384. (not much functionality here yet).
  385. </li>
  386. <li>
  387. <keyword>[+/F]</keyword>
  388. High level interface in <ref>ImagingClasses.pas</ref> unit
  389. was extended and several bugs here were fixed.
  390. </li>
  391. <li>
  392. <keyword>[*]</keyword>
  393. Imaging now compiles and works on 64bit
  394. <b>AMD64</b> CPU architecture (tested in Linux).
  395. </li>
  396. <li>
  397. <keyword>[+]</keyword>
  398. VCL/CLX/LCL support in <ref>ImagingComponents.pas</ref> unit
  399. was extended.
  400. </li>
  401. <li>
  402. <keyword>[+]</keyword>
  403. New image data formats based on half-float (FP16) type added:
  404. <icode>ifR16F</icode>, <icode>ifA16R16G16B16F</icode>, <icode>ifA16B16G16R16F</icode>.
  405. <b>Direct3D</b> and <b>OpenGL</b> extensions now create textures in these formats too.
  406. </li>
  407. <li>
  408. <keyword>[+]</keyword>
  409. New low level interface functions:
  410. <icode>IsFileFormatSupported, GetPixelDirect, SetPixelDirect,
  411. GetPixel32, SetPixel32, GetPixelFP, SetPixelFP</icode>.
  412. <icode>GetPixelBytes</icode> was removed (same data can be obtained by
  413. <icode>GetImageFormatInfo</icode>).
  414. </li>
  415. <li>
  416. <keyword>[F/*]</keyword>
  417. Many many bug fixes in many parts of the library as well as some optimizations,
  418. changes, and tweaks.
  419. </li>
  420. </bulletlist>
  421. </section>
  422. <!-- VERSION 00.18 -->
  423. <section>
  424. <mediumcap>Version 00.18 - 25.04.2006</mediumcap>
  425. <note>Source code is about 620 KiB in size.</note>
  426. <bulletlist>
  427. <li>
  428. <keyword>[D]</keyword>
  429. Documentation updated to version <b>0.18</b>.
  430. </li>
  431. <li>
  432. <keyword>[E]</keyword>
  433. Demos were extended or updated.
  434. </li>
  435. <li>
  436. <keyword>[+]</keyword>
  437. High level interface in <ref>ImagingClasses.pas</ref> unit
  438. was extended.
  439. </li>
  440. <li>
  441. <keyword>[*/+]</keyword>
  442. Mipmap generation in library core and
  443. in <keyword>Direct3D 9</keyword> and <keyword>OpenGL</keyword>
  444. extensions is now filtered.
  445. Also <keyword>Direct3D 9</keyword> extension was extended and works
  446. with D3D surfaces now.
  447. </li>
  448. <li>
  449. <keyword>[F]</keyword>
  450. There was a bug in conversion between Imaging image
  451. and <icode>TBitmap</icode> in <ref>ImagingComponents.pas</ref>
  452. unit when using <b>LCL</b> component set (with <b>GTK</b> interface).
  453. </li>
  454. <li>
  455. <keyword>[*]</keyword>
  456. Imaging now compiles and works in
  457. <b>FreeBSD</b> and maybe in other Unixes as well.
  458. </li>
  459. <li>
  460. <keyword>[+]</keyword>
  461. Functions added to the low level interface:
  462. <icode>StretchRect</icode>.
  463. </li>
  464. <li>
  465. <keyword>[+/*]</keyword>
  466. Filtered resizing and stretching implemented. <icode>ResizeImage</icode>
  467. and other functions now take advantage of it.
  468. </li>
  469. <li>
  470. <keyword>[+]</keyword>
  471. <b>MNG (Multiple Network Graphics)</b> image file format loading and
  472. saving added. Supports usage of <b>PNG</b> and <b>JNG</b> frames, animation
  473. capabilities are not used.
  474. </li>
  475. <li>
  476. <keyword>[+]</keyword>
  477. <b>JNG (JPEG Network Graphics)</b> image file format loading and
  478. saving added. Supports 8 bit gray and 24 bit RGB images with
  479. optional alpha channel.
  480. </li>
  481. <li>
  482. <keyword>[*/-]</keyword>
  483. <b>PNG</b> support moved from <icode>ImagingPng</icode> unit to
  484. the new <ref>ImagingNetworkGraphics.pas</ref> unit. Old unit was
  485. removed from Imaging.
  486. </li>
  487. <li>
  488. <keyword>[+]</keyword>
  489. New unit <ref>ImagingNetworkGraphics.pas</ref> added for
  490. future handling of all Network Graphics image formats.
  491. </li>
  492. </bulletlist>
  493. </section>
  494. <!-- VERSION 00.16 -->
  495. <section>
  496. <mediumcap>Version 00.16 - 22.12.2005</mediumcap>
  497. <note>Source code is about 535 KiB in size.</note>
  498. <bulletlist>
  499. <li>
  500. <keyword>[D]</keyword>
  501. Documentation updated to version <b>0.16</b>.
  502. </li>
  503. <li>
  504. <keyword>[E]</keyword>
  505. New demos created: <b>D3D Demo</b>, <b>OpenGL Demo</b> (Object Pascal).
  506. </li>
  507. <li>
  508. <keyword>[+]</keyword>
  509. Functions added to the low level interface:
  510. <icode>RotateImage</icode>.
  511. </li>
  512. <li>
  513. <keyword>[E]</keyword>
  514. New demos created: <b>SDL Demo</b>, <b>LCL Demo</b> (Object Pascal).
  515. </li>
  516. <li>
  517. <keyword>[+]</keyword>
  518. Extension for creating/loading/saving <keyword>Direct3D 9</keyword>
  519. textures using Imaging added to the new <ref>ImagingDirect3D9.pas</ref> unit.
  520. </li>
  521. <li>
  522. <keyword>[+]</keyword>
  523. Extension for creating/loading/saving <keyword>SDL</keyword>
  524. surfaces using Imaging added to the new <ref>ImagingSDL.pas</ref> unit.
  525. </li>
  526. <li>
  527. <keyword>[+]</keyword>
  528. Extension for creating/loading/saving <keyword>OpenGL</keyword>
  529. textures using Imaging added to the new <ref>ImagingOpenGL.pas</ref> unit.
  530. </li>
  531. <li>
  532. <keyword>[+]</keyword>
  533. Functions added to the low level interface:
  534. <icode>ReplaceColor</icode>.
  535. </li>
  536. <li>
  537. <keyword>[+]</keyword>
  538. <icode>TGraphic</icode> descendant classes which use Imaging
  539. added for <keyword>VCL</keyword>, <keyword>CLX</keyword> and
  540. <keyword>LCL</keyword> components sets. They are in the new
  541. <ref>ImagingComponents.pas</ref> unit.
  542. </li>
  543. <li>
  544. <keyword>[F*]</keyword>
  545. Bugs (in 48/64 bit image handling) fixed in
  546. <b>PNG (Portable Network Graphics)</b> image file format
  547. handling and support for color keying (if present in image) added.
  548. </li>
  549. <li>
  550. <keyword>[F]</keyword>
  551. Headers of some functions exported from Imaging dll/so library were
  552. changed in <ref>ImagingExport.pas</ref> unit and in the wrappers for
  553. the other languages.
  554. </li>
  555. <li>
  556. <keyword>[+]</keyword>
  557. New options <icode>ImagingLoadOverrideFormat</icode> and
  558. <icode>ImagingSaveOverrideFormat</icode> added. Also all
  559. option values are checked for validity before they are used.
  560. </li>
  561. </bulletlist>
  562. </section>
  563. <!-- VERSION 00.14 -->
  564. <section>
  565. <mediumcap>Version 00.14 - 10.07.2005</mediumcap>
  566. <note>Source code is about 418 KiB in size.</note>
  567. <bulletlist>
  568. <li>
  569. <keyword>[D]</keyword>
  570. Documentation updated to version <b>0.14</b>.
  571. </li>
  572. <li>
  573. <keyword>[E]</keyword>
  574. New demos created: <b>High Level</b> (Object Pascal),
  575. <b>dotNET Demo01</b> (Delphi.NET).
  576. </li>
  577. <li>
  578. <keyword>[*]</keyword>
  579. You can now use Imaging with <b>MPL</b> or <b>LGPL</b> license.
  580. </li>
  581. <li>
  582. <keyword>[*]</keyword>
  583. Large changes in <b>Delphi.NET</b> wrapper. Function names and
  584. parameter types are now almost same as in <b>Object Pascal</b>
  585. without using dll. Some <b>.NET</b> only things added too.
  586. </li>
  587. <li>
  588. <keyword>[+]</keyword>
  589. Functions added to low level interface:
  590. <icode>NewPalette, CopyPalette, FreePalette,
  591. DetermineFileFormat, DetermineStreamFormat, DetermineMemoryFormat, GetPixelsSize</icode>.
  592. </li>
  593. <li>
  594. <keyword>[*]</keyword>
  595. Pixel format conversions rewritten to get better color
  596. quality when converting from low bitcounts to higher
  597. (visible mainly when using formats like <icode>ifR3G3B2</icode>
  598. or <icode>ifA4R4G4B4</icode>).
  599. </li>
  600. <li>
  601. <keyword>[+]</keyword>
  602. Functions added to low level interface:
  603. <icode>MapImageToPalette, FillRect, SplitImage, MakePaletteForImages</icode>.
  604. </li>
  605. <li>
  606. <keyword>[+]</keyword>
  607. Basic high level interface created. Classes
  608. <icode>TSingleImage</icode> and <icode>TMultiImage</icode>
  609. added to <ref>ImagingClasses.pas</ref> unit.
  610. </li>
  611. <li>
  612. <keyword>[+]</keyword>
  613. Functions added to low level interface:
  614. <icode>CopyRect</icode>.
  615. </li>
  616. <li>
  617. <keyword>[+]</keyword>
  618. New image formats added: <icode>
  619. ifA16Gray16</icode>.
  620. </li>
  621. <li>
  622. <keyword>[+]</keyword>
  623. <b>PNG (Portable Network Graphics)</b> image file format loading and
  624. saving added. Supports 1, 2, 4, 8, 16, 24, 32, 48 and 64 bit images.
  625. 1, 2 and 4 bit images can be only loaded.
  626. </li>
  627. <li>
  628. <keyword>[F]</keyword>
  629. Various bugs fixed in <icode>Imaging, ImagingBitmap</icode>
  630. and <icode>ImagingExport</icode> units,
  631. look there for details.
  632. </li>
  633. <li>
  634. <keyword>[+]</keyword>
  635. Functions added to low level interface:
  636. <icode>GenerateMipMaps, TestImagesInArray</icode>.
  637. </li>
  638. <li>
  639. <keyword>[+]</keyword>
  640. Added wrapper unit for <b>Delphi.NET</b>.
  641. </li>
  642. </bulletlist>
  643. </section>
  644. <!-- VERSION 00.12 -->
  645. <section>
  646. <mediumcap>Version 00.12 - 13.03.2005</mediumcap>
  647. <note>First version released to the public. Source code size
  648. was about 250 KiB in size.</note>
  649. <bulletlist>
  650. <li>
  651. <keyword>[*]</keyword>
  652. <b>DXTC</b> compression and decompression code optimized
  653. and it is now about 20% faster.
  654. </li>
  655. <li>
  656. <keyword>[T]</keyword>
  657. <b>VampyreDoc</b> tool for documentation management created.
  658. It can create <b>XHMTL</b> and <b>HTMLHelp</b> documentation
  659. from <b>XML</b> based projects.
  660. </li>
  661. <li>
  662. <keyword>[+]</keyword>
  663. New field <icode>IsRBSwapped</icode>
  664. added to <ref>TImageFormatInfo</ref> record.
  665. It is used in conversions and in channel related functions to
  666. distinguish between ARGB and ABGR formats.
  667. </li>
  668. <li>
  669. <keyword>[+]</keyword>
  670. New image formats added: <icode>
  671. ifA32R32G32B32F, ifA16B16G16R16, ifB16G16R16</icode>.
  672. </li>
  673. <li>
  674. <keyword>[+]</keyword>
  675. Functions added to low level interface:
  676. <icode>ReduceColors, GetImageFormatInfo</icode>.
  677. </li>
  678. <li>
  679. <keyword>[*]</keyword>
  680. Image format conversions between all types of formats are now
  681. supported (<icode>ChannelToIndex</icode> and
  682. <icode>FloatToIndex</icode> implemented).
  683. </li>
  684. <li>
  685. <keyword>[+]</keyword> Color quantization with support
  686. for alpha channel (using Median Cut algorithm) added.
  687. </li>
  688. <li>
  689. <keyword>[F]</keyword>
  690. Fixed huge memory leak in <b>Windows Bitmap</b> file format (occurred when
  691. loading 8bit uncompressed image).
  692. </li>
  693. <li>
  694. <keyword>[E]</keyword>
  695. Demos created: <b>DXT Tool</b> (Object Pascal), <b>Test</b> (C/C++),
  696. <b>VCL Image Browser</b> (Object Pascal).
  697. </li>
  698. <li>
  699. <keyword>[U]</keyword>
  700. <b>Vampyre Imaging Library</b> project registered at
  701. <link url="http://sourceforge.net">SourceForge</link> (03.12.2004).
  702. </li>
  703. <li>
  704. <keyword>[+]</keyword>
  705. Added <icode>PushOptions</icode> and
  706. <icode>PopOptions</icode> low level functions for
  707. pushing and popping Imaging options.
  708. </li>
  709. <li>
  710. <keyword>[*]</keyword>
  711. <icode>SwapChannels</icode> and
  712. <icode>SwapChannelsOfPalette</icode>
  713. low level functions extended
  714. to allow to swap all channels, not only red and blue.
  715. </li>
  716. <li>
  717. <keyword>[*]</keyword>
  718. Checked and if necessary added support for special image formats
  719. (only <b>DXTC</b> images now) in all low level functions.
  720. </li>
  721. <li>
  722. <keyword>[+]</keyword>
  723. <b>DXT1, DXT3</b> and <b>DXT5</b> decoding and encoding added.
  724. </li>
  725. <li>
  726. <keyword>[+]</keyword>
  727. <b>DDS (DirecDraw Surface)</b> image file format saving added.
  728. Supports mipmaps, cube maps, volume textures and ordinary images.
  729. </li>
  730. <li>
  731. <keyword>[E]</keyword>
  732. Demos created: <b>Benchmark</b> (Object Pascal/C++).
  733. </li>
  734. </bulletlist>
  735. </section>
  736. <!-- VERSION 00.11 -->
  737. <section>
  738. <mediumcap>Version 00.11 - 18.11.2004</mediumcap>
  739. <note>Source code size was about 150 KiB in size.</note>
  740. <bulletlist>
  741. <li>
  742. <keyword>[+]</keyword>
  743. New image format added: <icode>
  744. ifR32F, ifDXT1, ifDXT3, ifDXT5</icode>.
  745. </li>
  746. <li>
  747. <keyword>[+]</keyword>
  748. <b>DDS (DirecDraw Surface)</b> image file format loading added.
  749. Supports mipmaps, cube maps, volume textures and ordinary images.
  750. </li>
  751. <li>
  752. <keyword>[+]</keyword>
  753. New image formats added: <icode>
  754. ifX8R8G8B8, ifX1R5G5B5, ifX4R4G4B4</icode>.
  755. </li>
  756. <li>
  757. <keyword>[+]</keyword>
  758. Property <icode>SupportedFormats</icode> added to
  759. <icode>TImageFileFormat</icode> class.
  760. It is set of <icode>TImageFormat</icode> values
  761. which can be saved by this file format. Also
  762. <icode>MakeCompatible</icode> method was added.
  763. It converts unsupported formats to supported before saving.
  764. </li>
  765. <li>
  766. <keyword>[*]</keyword>
  767. Made <b>PasZLib</b> library compatible with all compilers and platforms
  768. supported by Imaging (needed for PNG support).
  769. </li>
  770. <li>
  771. <keyword>[+]</keyword>
  772. New low level functions for palette support added: <icode>
  773. FindColor, FillGrayscalePalette, FillCustomPalette, SwapChannelsOfPalette</icode>.
  774. </li>
  775. <li>
  776. <keyword>[+]</keyword>
  777. Added import unit and header for Object Pascal and C/C++ to
  778. enable using Imaging library compiled into dynamic link library (<b>dll/so</b>).
  779. </li>
  780. <li>
  781. <keyword>[+]</keyword>
  782. <b>BMP (Windows Bitmap)</b> image file format loading and saving added.
  783. Supports 1, 4, 8, 16, 24 and 32 bit images with or without RLE compression.
  784. 1 and 4 bit images can be only loaded.
  785. </li>
  786. <li>
  787. <keyword>[+]</keyword>
  788. Added support for function inlining in <b>Delphi 2005</b> (although not tested yet)
  789. and <b>Free Pascal</b> (although compiler crashes on this now).
  790. </li>
  791. <li>
  792. <keyword>[+]</keyword>
  793. New image formats added: <icode>
  794. ifA8Gray8, ifR3G3B2, ifR1G1B1</icode>.
  795. </li>
  796. <li>
  797. <keyword>[+]</keyword>
  798. New low level functions added: <icode>
  799. ConvertImage, FlipImage, MirrorImage, SwapChannels, CloneImage,
  800. FreeImagesInArray, ResizeImage</icode>.
  801. </li>
  802. <li>
  803. <keyword>[+]</keyword>
  804. Added image format conversion engine which will support all
  805. members of <icode>TImageFormat</icode>.
  806. Some indexed and special format conversions are not implemented yet.
  807. </li>
  808. <li>
  809. <keyword>[+]</keyword>
  810. <b>TGA (Truevision Targa)</b> image file format loading and saving added.
  811. Supports 8, 15/16, 24 and 32 bit images with or without RLE compression.
  812. </li>
  813. </bulletlist>
  814. </section>
  815. <!-- VERSION 00.10 -->
  816. <section>
  817. <mediumcap>Version 00.10 - 23.09.2004</mediumcap>
  818. <note>First working version. Source code size was about 80 KiB in size.</note>
  819. <bulletlist>
  820. <li>
  821. <keyword>[+]</keyword>
  822. <b>JPEG (Joint Photographic Experts Group)</b> image file format loading and saving added.
  823. Supports 8 and 24 bit images.
  824. </li>
  825. <li>
  826. <keyword>[*]</keyword>
  827. Made <b>PasJpeg</b> library compatible with all compilers and platforms
  828. supported by Imaging.
  829. </li>
  830. <li>
  831. <keyword>[+]</keyword>
  832. Initial low level functions added: <icode>
  833. InitImage, NewImage, TestImage, FreeImage,
  834. LoadImageFromFile, LoadImageFromStream, LoadImageFromMemory,
  835. LoadMultiImageFromFile, LoadMultiImageFromStream, LoadMultiImageFromMemory,
  836. SaveImageToFile, SaveImageToStream, SaveImageToMemory, SaveMultiImageToFile,
  837. SaveMultiImageToStream, SaveMultiImageToMemory, SetOption, GetOption,
  838. SetUserFileIO, ResetFileIO, GetPixelBytes</icode>.
  839. </li>
  840. <li>
  841. <keyword>[+]</keyword>
  842. Initial image formats added: <icode>
  843. ifUnknown, ifDefault, ifIndex8, ifGray8, ifGray16, ifGray32,
  844. ifGray64, ifR5G6B5, ifA1R5G5B5, ifA4R4G4B4, ifR8G8B8, ifA8R8G8B8,
  845. ifR16G16B16, ifA16R16G16B16, ifA32B32G32R32F</icode>.
  846. </li>
  847. <li>
  848. <keyword>[*]</keyword>
  849. Basic structure of library created.
  850. </li>
  851. <li>
  852. <keyword>[U]</keyword>
  853. <b>Vampyre Imaging Library</b> project started (about 08.09.2004).
  854. </li>
  855. </bulletlist>
  856. </section>
  857. <br /><br />
  858. <anchor name="legend"><scap>Changes Legend</scap></anchor>
  859. <list>
  860. <li><keyword>[+]</keyword> Addition (new features, functions etc.)</li>
  861. <li><keyword>[-]</keyword> Removal (old features, functions etc.)</li>
  862. <li><keyword>[*]</keyword> Change (existing features, functions etc. changed or extended)</li>
  863. <li><keyword>[F]</keyword> Bug fix</li>
  864. <li><keyword>[D]</keyword> Documentation related</li>
  865. <li><keyword>[E]</keyword> Examples and demos related</li>
  866. <li><keyword>[T]</keyword> Tools related</li>
  867. <li><keyword>[U]</keyword> Unique event</li>
  868. </list>
  869. <link url="#top">Top</link>
  870. </chapter>
  871. </doc>