Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] PNG examiner

From: reboldes::bigfoot::com at: 2-Sep-2000 6:44

--__REBOL--2.2.0.3.1--2-Sep-2000/15:07:47+2:00--1895 Content-type: text/plain I want to create a script that will allow me to create or modify simple png files. I've started with this script, that parses all the standard "chunks" in the file, but I could not go through the CRC and compression (LZ77 derivate). Anybody want to help me? oldes PS: The PNG spec. I used: http://oldes.multimedia.cz/spec/REC-png.html --__REBOL--2.2.0.3.1--2-Sep-2000/15:07:47+2:00--1895 Content-Type: application/octet-stream; name="png.r" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="png.r" UmVib2wgWwoJdGl0bGU6ICJQTkcgRXhhbWluZXIiCglBdXRob3I6ICJvbGRlcyIKCURhdG U6ICAgIDMxLUF1Zy0yMDAwCgl2ZXJzaW9uOiAwLjAuMQogICAgRmlsZTogICAgJXBuZy5y CiAgICBFbWFpbDogICByZWJvbGRlc0BiaWdmb290LmNvbQogICAgSG9tZTogICAgaHR0cD ovL29sZGVzLm11bHRpbWVkaWEuY3ovcnVyL2Rvd25sb2FkLwoJUHVycG9zZTogewogICAg ICAgQmFzaWMgUE5HIChQb3J0YWJsZSBOZXR3b3JrIEdyYXBoaWNzKSBwYXJzZXIgd2hpY2 ggY2FuCgkgICBzaG93IGFsbCBpbmZvcm1hdGlvbnMgZnJvbSBzdGFuZGFyZCBjaHVua3Mg aW4gdGhlIGZpbGUuIAogICAgfQogICAgQ2F0ZWdvcnk6IFtmaWxlIHV0aWwgM10KCUhpc3 Rvcnk6IFsKCQkwLjAuMSBbMzEtQXVnLTIwMDAgIm9sZGVzIiAiSW5pdGlhbCB2ZXJzaW9u Il0KCV0KCWNvbW1lbnQ6IHtJIHdvdWxkIG5lZWQgYSBsaXR0bGUgaGVscCB3aXRoIENSQy BhbmQgY29tcHJlc3Npb24gdG8gYmUgYWJsZQoJY3JlYXRlL21vZGlmeSBteSBvd24gUE5H IHBpY3R1cmVzOihvbGRlcwoJUE5HIFNwZWNpZmljYXRpb24gc2hvdWxkIGJlIGZvdW5kIG F0IGh0dHA6Ly9vbGRlcy5tdWx0aW1lZGlhLmN6L3NwZWMvUkVDLXBuZy5odG1sCglvciBh dCBodHRwOi8vd3d3LnczLm9yZy9wdWIvV1dXL1RSL30KXQoKaWYgZW1wdHk/IHBuZy1maW xlOiB0by1maWxlIGFzayAiUE5HIGZpbGU6IiBbcG5nLWZpbGU6ICUvZC90ZXN0LnBuZ10K cG5nLWJpbjogcmVhZC9iaW5hcnkgcG5nLWZpbGUKCnBuZzogbWFrZSBvYmplY3QhIFsKCW hlYWRlcjogbm9uZQoJQ29sb3ItdHlwZTogbm9uZQoJQ29sb3ItdHlwZXM6IFsKCQkwICJn cmF5c2NhbGUsIHdpdGhvdXQgYWxwaGEiCgkJMiAidHJ1ZWNvbG9yLCB3aXRob3V0IGFscG hhIgoJCTMgImluZGV4ZWQgY29sb3IiCgkJNCAiZ3JheXNjYWxlLCB3aXRoIGFscGhhIgoJ CTYgInRydWVjb2xvciwgd2l0aCBhbHBoYSIKCV0KCWNodW5rczogbWFrZSBibG9jayEgNg oJY2h1bms6IG1ha2Ugb2JqZWN0ISBbCgkJbGVuZ3RoOglub25lCgkJdHlwZToJbm9uZQoJ CWRhdGE6CW5vbmUKCQlDUkM6CW5vbmUKCV0KCWNodW5rLWJ5dGVzOiBbCgkJIklIRFIiIF s0IDQgMSAxIDEgMSAxXQoJCSJQTFRFIiBbXQoJCSJJREFUIiBbXQoJCSJJRU5EIiBbXQoJ CQoJCSJjSFJNIiBbNCA0IDQgNCA0IDQgNCA0XQoJCSJnQU1BIiBbNF0KCQkic0JJVCIgW1 0KCQkiYktHRCIgW10KCQkiaElTVCIgW10KCQkidFJOUyIgW10KCQkicEhZcyIgWzQgNCAx XQoJCSJ0SU1FIiBbMiAxIDEgMSAxIDFdCgkJInRFWHQiIFtdCgkJInpUWHQiIFtdCgldCg kKXQoKcHJpbnQgcmVmb3JtIFsiUE5HIHNpemU6IiBsZW5ndGg/IHBuZy1iaW4gImJ5dGVz Il0KCnBuZy9oZWFkZXI6IGNvcHkvcGFydCBwbmctYmluIDgKcG5nLWJpbjogc2tpcCBwbm ctYmluIDgKaWYgcG5nL2hlYWRlciA8PiAjezg5NTA0RTQ3MEQwQTFBMEF9IFtwcmludCAi SWxsZWdhbCBQTkcgaGVhZGVyISIgaGFsdF0KCjtoZWxwIGZ1bmN0aW9uczoKZ2V0cGFydD ogZnVuY1tieXRlcyAvbG9jYWwgdG1wXVsKCXRtcDogY29weS9wYXJ0IHBuZy1iaW4gYnl0 ZXMgCglwbmctYmluOiBza2lwIHBuZy1iaW4gYnl0ZXMKCXRtcApdCgpzbGljZS1iaW46IG Z1bmMgW2JpbiBieXRlcyAvaW50ZWdlcnMgL2xvY2FsIHRtcCBiXVsKCXRtcDogbWFrZSBi bG9jayEgbGVuZ3RoPyBieXRlcwoJZm9yYWxsIGJ5dGVzIFsKCQliOiBjb3B5L3BhcnQgYm luIGJ5dGVzLzEKCQlhcHBlbmQgdG1wIGVpdGhlciBpbnRlZ2VycyBbdG8taW50ZWdlciBi XVtiXQoJCWJpbjogc2tpcCBiaW4gYnl0ZXMvMQoJXQoJdG1wCl0KZXh0cmFjdC1kYXRhOi BmdW5jW3R5cGVdWwoJcG5nL2NodW5rL2RhdGE6IHNsaWNlLWJpbi9pbnRlZ2VycyBwbmcv Y2h1bmsvZGF0YSBzZWxlY3QgcG5nL2NodW5rLWJ5dGVzIHR5cGUKXQo7ZW5kIG9mIGhlbH AgZnVuY3Rpb25zCgpieXRlczogY2hhcnNldCBbIyJeQCIgLSAjIv8iXQoKcHJpbiAiU2Vh cmNoaW5nIGZvciBjaHVua3MuLi4gIgoKCndoaWxlIFtub3QgdGFpbD8gcG5nLWJpbl1bCg lwbmcvY2h1bmsvbGVuZ3RoOgl0by1pbnRlZ2VyIGdldHBhcnQgNAk7bGVuZ3RoCglwbmcv Y2h1bmsvdHlwZToJCXRvLXN0cmluZyBnZXRwYXJ0IDQJCTt0eXBlCglwbmcvY2h1bmsvZG F0YToJCWdldHBhcnQgcG5nL2NodW5rL2xlbmd0aAk7ZGF0YQoJcG5nL2NodW5rL0NSQzoJ CWdldHBhcnQgNAk7Q1JDCgoJcmVwZW5kIHBuZy9jaHVua3MgW3BuZy9jaHVuay9sZW5ndG ggcG5nL2NodW5rL0NSQyBwbmcvY2h1bmsvdHlwZV0KCXN3aXRjaCBwbmcvY2h1bmsvdHlw ZSBbCgkJIklIRFIiIFtleHRyYWN0LWRhdGEgIklIRFIiXQk7SW1hZ2UgaGVhZGVyCgkJIn NCSVQiIFtdCQkJCQkJO1NpZ25pZmljYW50IGJpdHMKCQkicEhZcyIgW2V4dHJhY3QtZGF0 YSAicEhZcyJdCTtQaHlzaWNhbCBwaXhlbCBkaW1lbnNpb25zCgkJImNIUk0iIFtleHRyYW N0LWRhdGEgImNIUk0iXQk7UHJpbWFyeSBjaHJvbWF0aWNpdGllcyBhbmQgd2hpdGUgcG9p bnQKCQkiZ0FNQSIgW2V4dHJhY3QtZGF0YSAiZ0FNQSJdCTtJbWFnZSBnYW1tYQoJCSJoSV NUIiBbXQkJCQkJCTtJbWFnZSBoaXN0b2dyYW0KCQkidEVYdCIgWztUZXh0dWFsIGRhdGEK CQkJcGFyc2UgcG5nL2NodW5rL2RhdGEgW2NvcHkgayB0byAjIl5AIiAxIHNraXAgY29weS BkIHRvIGVuZF0KCQkJcG5nL2NodW5rL2RhdGE6IHJlZHVjZSBbayBkXQoJCV0KCQkidElN RSIgWztJbWFnZSBsYXN0LW1vZGlmaWNhdGlvbiB0aW1lCgkJCWV4dHJhY3QtZGF0YSAidE lNRSIKCQkJcG5nL2NodW5rL2RhdGE6IHRvLWRhdGUgcmVqb2luIFtwbmcvY2h1bmsvZGF0 YS8zICItIiBwbmcvY2h1bmsvZGF0YS8yICItIiBwbmcvY2h1bmsvZGF0YS8xICIvIiBwbm cvY2h1bmsvZGF0YS80ICI6IiBwbmcvY2h1bmsvZGF0YS81ICI6IiBwbmcvY2h1bmsvZGF0 YS82XSAKCQldCgkJInRSTlMiIFtdO1RyYW5zcGFyZW5jeQoJCSJ6VFh0IiBbO0NvbXByZX NzZWQgdGV4dHVhbCBkYXRhCgkJCXBhcnNlIHBuZy9jaHVuay9kYXRhIFtjb3B5IGsgdG8g IyJeQCIgMSBza2lwIGNvcHkgY20gMSBza2lwIGNvcHkgZCB0byBlbmRdCgkJCXBuZy9jaH Vuay9kYXRhOiByZWR1Y2UgW2sgY20gZF0KCQldCgldCglyZXBlbmQvb25seSBwbmcvY2h1 bmtzIHBuZy9jaHVuay9kYXRhCl0KCnByaW50IFsiZm91bmQiIChsZW5ndGg/IHBuZy9jaH Vua3MpIC8gNCAiY2h1bmtzLiJdCjtzaG93IHJlc3VsdHM6CnByaW50ICItLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgpmb3JlYWNoIFtsZW5ndGggY3 JjIHR5cGUgZGF0YV0gcG5nL2NodW5rcyBbCglzd2l0Y2gvZGVmYXVsdCB0eXBlIFsKCQki SUhEUiIgWztJbWFnZSBoZWFkZXIKCQkJcHJpbnQgWyJXaWR0aF9fX19fX19fX19fX19fXy IgZGF0YS8xICJwaXhlbHMiXQoJCQlwcmludCBbIkhlaWdodF9fX19fX19fX19fX19fIiBk YXRhLzIgInBpeGVscyJdCgkJCXByaW50IFsiQml0IGRlcHRoX19fX19fX19fX18iIGRhdG EvM10KCQkJcHJpbnQgWyJDb2xvciB0eXBlX19fX19fX19fXyIgZGF0YS80ICIoIiBzZWxl Y3QgcG5nL2NvbG9yLXR5cGVzIGRhdGEvNCAiKSJdCgkJCXByaW50IFsiQ29tcHJlc3Npb2 4gbWV0aG9kX18iIGRhdGEvNV0KCQkJcHJpbnQgWyJGaWx0ZXIgbWV0aG9kX19fX19fXyIg ZGF0YS82XQoJCQlwcmludCBbIkludGVybGFjZSBtZXRob2RfX19fIiBkYXRhLzddCgkJXQ oJCSJQTFRFIiBbcHJpbnQgWyJQYWxldHRlOiAgICIgbW9sZCBkYXRhXV0KCQkiSURBVCIg W3ByaW50IFsiSW1hZ2UgZGF0YToiIG1vbGQgZGF0YV0JXQoJCSJJRU5EIiBbcHJpbnQgIk ltYWdlIHRyYWlsZXIgLSBFT0YiXQoJCTtBbmNpbGxhcnkgY2h1bmtzCgkJImJLR0QiIFtw cmludCBbIkJhY2tncm91bmQgY29sb3I6IiBtb2xkIGRhdGFdXQoJCSJjSFJNIiBbCgkJCX ByaW50ICJQcmltYXJ5IGNocm9tYXRpY2l0aWVzIGFuZCB3aGl0ZSBwb2ludDoiCgkJCXBy aW50IFsiICBXaGl0ZSBQb2ludCB4X18iIGRhdGEvMV0KCQkJcHJpbnQgWyIgIFdoaXRlIF BvaW50IHlfXyIgZGF0YS8yXQoJCQlwcmludCBbIiAgUmVkIHhfX19fX19fX19fIiBkYXRh LzNdCgkJCXByaW50IFsiICBSZWQgeV9fX19fX19fX18iIGRhdGEvNF0KCQkJcHJpbnQgWy IgIEdyZWVuIHhfX19fX19fXyIgZGF0YS81XQoJCQlwcmludCBbIiAgR3JlZW4geV9fX19f X19fIiBkYXRhLzZdCgkJCXByaW50IFsiICBCbHVlIHhfX19fX19fX18iIGRhdGEvN10KCQ kJcHJpbnQgWyIgIEJsdWUgeV9fX19fX19fXyIgZGF0YS84XQoKCQldCgkJImdBTUEiIFtw cmludCBbIkltYWdlIGdhbW1hOl9fIiBkYXRhXV0KCQkiaElTVCIgW3ByaW50IFsiSW1hZ2 UgaGlzdG9ncmFtOiIgZGF0YV1dCgkJInBIWXMiIFs7UGh5c2ljYWwgcGl4ZWwgZGltZW5z aW9ucwoJCQlQcmludCBbIlBpeGVscyBwZXIgdW5pdCwgWCBheGlzOiAiIGRhdGEvMV0KCQ kJUHJpbnQgWyJQaXhlbHMgcGVyIHVuaXQsIFkgYXhpczogIiBkYXRhLzJdCgkJCVByaW50 IFsiVW5pdCBzcGVjaWZpZXI6ICIgZGF0YS8zICIoIiBwaWNrIFsidW5rbm93biIgIm1ldG VyIl0gKGRhdGEvMyArIDEpCiIpIl0KCQldCgkJInNCSVQiIFtwcmludCBbIlNpZ25pZmlj YW50IGJpdHM6IiBkYXRhXV0KCQkidEVYdCIgW3ByaW50IFtkYXRhLzEgIjoiIGRhdGEvMl 1dCgkJInRSTlMiIFtwcmludCBbIlRyYW5zcGFyZW5jeTpfX19fIiBkYXRhXV0KCQkielRY dCIgWwoJCQlwcmludCAiQ29tcHJlc3NlZCB0ZXh0dWFsIGRhdGE6IgoJCQlwcmludCBbIi AiIGRhdGEvMSBkYXRhLzIgZGF0YS8zXQoJCV0KCQkgIAoJXVsKCQllaXRoZXIgZmluZCBw bmcvY2h1bmstYnl0ZXMgdHlwZSBbCgkJCXByaW4gW3R5cGUgIiAiXSBwcm9iZSBkYXRhCg kJXVsJcHJpbnQgWyJOb25zdGFuZGFyZCIgZWl0aGVyICh0by1pbnRlZ2VyIHR5cGUvMikg PiA4OCBbInByaXZhdGUiXVsicHVibGljIl0gImNodW5rOiIgdHlwZV0KCQldCgldIApdCg oK --__REBOL--2.2.0.3.1--2-Sep-2000/15:07:47+2:00--1895 Content-Type: application/octet-stream; name="test.png" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="test.png" iVBORw0KGgoAAAANSUhEUgAAACQAAAAkAQMAAADbzgrbAAAAA3NCSVQICAjb4U/gAAAABl BMVEUA/2YAZgBC6Rq9AAAAAnRSTlP//8i138cAAAAJcEhZcwAADnQAAA50AWsks9YAAAAh dEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDIuMO6rW8cAAAAWdEVYdENyZW F0aW9uIFRpbWUAMDgvMzAvMDBqktPXAAAAHUlEQVR4nGP4DwQfGIgi9xOt8jvRKqHkexLV EyQBlYaw2TYxX2cAAAAASUVORK5CYøI--__REBOL--2.2.0.3.1--2-Sep-2000/15:07:47+2:00--1895--