├── .gitattributes
├── .gitignore
├── ImageOcclusionEditor.sln
├── ImageOcclusionEditor
├── App.config
├── ImageOcclusionEditor.csproj
├── MainForm.Designer.cs
├── MainForm.cs
├── MainForm.resx
├── PngChunkSVGI.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── imageocclusioneditor.ico
├── packages.config
└── svg-edit
│ ├── browser-not-supported.html
│ ├── browser.js
│ ├── canvg
│ ├── canvg.js
│ └── rgbcolor.js
│ ├── config-sample.js
│ ├── config.js
│ ├── contextmenu.js
│ ├── contextmenu
│ └── jquery.contextMenu.js
│ ├── coords.js
│ ├── draw.js
│ ├── embedapi-dom.js
│ ├── embedapi.html
│ ├── embedapi.js
│ ├── extensions
│ ├── allowedMimeTypes.php
│ ├── closepath_icons.svg
│ ├── ext-arrows.js
│ ├── ext-closepath.js
│ ├── ext-connector.js
│ ├── ext-eyedropper.js
│ ├── ext-foreignobject.js
│ ├── ext-grid.js
│ ├── ext-helloworld.js
│ ├── ext-imagelib.js
│ ├── ext-imagelib.xml
│ ├── ext-markers.js
│ ├── ext-mathjax.js
│ ├── ext-overview_window.js
│ ├── ext-panning.js
│ ├── ext-panning.xml
│ ├── ext-php_savefile.js
│ ├── ext-polygon.js
│ ├── ext-server_moinsave.js
│ ├── ext-server_opensave.js
│ ├── ext-shapes.js
│ ├── ext-shapes.xml
│ ├── ext-star.js
│ ├── ext-storage.js
│ ├── ext-webappfind.js
│ ├── ext-xdomain-messaging.js
│ ├── eyedropper-icon.xml
│ ├── eyedropper.png
│ ├── fileopen.php
│ ├── filesave.php
│ ├── foreignobject-icons.xml
│ ├── grid-icon.xml
│ ├── helloworld-icon.xml
│ ├── imagelib
│ │ ├── index.html
│ │ └── smiley.svg
│ ├── markers-icons.xml
│ ├── mathjax-icons.xml
│ ├── polygon-icons.svg
│ ├── savefile.php
│ ├── shapelib
│ │ ├── animal.json
│ │ ├── arrow.json
│ │ ├── dialog_balloon.json
│ │ ├── electronics.json
│ │ ├── flowchart.json
│ │ ├── game.json
│ │ ├── math.json
│ │ ├── misc.json
│ │ ├── music.json
│ │ ├── object.json
│ │ ├── raphael.txt
│ │ ├── raphael_1.json
│ │ ├── raphael_2.json
│ │ └── symbol.json
│ ├── star-icons.svg
│ └── webappfind-icon.svg
│ ├── history.js
│ ├── images
│ ├── README.txt
│ ├── align-bottom.png
│ ├── align-bottom.svg
│ ├── align-center.png
│ ├── align-center.svg
│ ├── align-left.png
│ ├── align-left.svg
│ ├── align-middle.png
│ ├── align-middle.svg
│ ├── align-right.png
│ ├── align-right.svg
│ ├── align-top.png
│ ├── align-top.svg
│ ├── bold.png
│ ├── cancel.png
│ ├── circle.png
│ ├── clear.png
│ ├── clone.png
│ ├── conn.svg
│ ├── copy.png
│ ├── cut.png
│ ├── delete.png
│ ├── document-properties.png
│ ├── dropdown.gif
│ ├── ellipse.png
│ ├── eye.png
│ ├── fhpath.png
│ ├── flyouth.png
│ ├── flyup.gif
│ ├── freehand-circle.png
│ ├── freehand-square.png
│ ├── go-down.png
│ ├── go-up.png
│ ├── image.png
│ ├── italic.png
│ ├── line.png
│ ├── link_controls.png
│ ├── logo.png
│ ├── logo.svg
│ ├── move_bottom.png
│ ├── move_top.png
│ ├── node_clone.png
│ ├── node_delete.png
│ ├── none.png
│ ├── open.png
│ ├── paste.png
│ ├── path.png
│ ├── polygon.png
│ ├── polygon.svg
│ ├── rect.png
│ ├── redo.png
│ ├── reorient.png
│ ├── rotate.png
│ ├── save.png
│ ├── select.png
│ ├── select_node.png
│ ├── sep.png
│ ├── shape_group_elements.png
│ ├── shape_ungroup.png
│ ├── source.png
│ ├── spinbtn_updn_big.png
│ ├── square.png
│ ├── svg_edit_icons.svg
│ ├── svg_edit_icons.svgz
│ ├── text.png
│ ├── text.svg
│ ├── to_path.png
│ ├── undo.png
│ ├── view-refresh.png
│ ├── wave.png
│ ├── wireframe.png
│ └── zoom.png
│ ├── jgraduate
│ ├── LICENSE
│ ├── README
│ ├── css
│ │ ├── jPicker.css
│ │ └── jgraduate.css
│ ├── images
│ │ ├── AlphaBar.png
│ │ ├── Bars.png
│ │ ├── Maps.png
│ │ ├── NoColor.png
│ │ ├── bar-opacity.png
│ │ ├── map-opacity.png
│ │ ├── mappoint.gif
│ │ ├── mappoint_c.png
│ │ ├── mappoint_f.png
│ │ ├── picker.gif
│ │ ├── preview-opacity.png
│ │ ├── rangearrows.gif
│ │ └── rangearrows2.gif
│ ├── jpicker.js
│ ├── jpicker.min.js
│ ├── jquery.jgraduate.js
│ └── jquery.jgraduate.min.js
│ ├── jquery-svg.js
│ ├── jquery-ui
│ ├── jquery-ui-1.8.17.custom.min.js
│ └── jquery-ui-1.8.custom.min.js
│ ├── jquery.js
│ ├── jquerybbq
│ └── jquery.bbq.min.js
│ ├── js-hotkeys
│ ├── README.md
│ └── jquery.hotkeys.min.js
│ ├── jspdf
│ ├── jspdf.min.js
│ ├── jspdf.plugin.svgToPdf.js
│ └── underscore-min.js
│ ├── locale
│ ├── README.txt
│ ├── lang.af.js
│ ├── lang.ar.js
│ ├── lang.az.js
│ ├── lang.be.js
│ ├── lang.bg.js
│ ├── lang.ca.js
│ ├── lang.cs.js
│ ├── lang.cy.js
│ ├── lang.da.js
│ ├── lang.de.js
│ ├── lang.el.js
│ ├── lang.en.js
│ ├── lang.es.js
│ ├── lang.et.js
│ ├── lang.fa.js
│ ├── lang.fi.js
│ ├── lang.fr.js
│ ├── lang.fy.js
│ ├── lang.ga.js
│ ├── lang.gl.js
│ ├── lang.he.js
│ ├── lang.hi.js
│ ├── lang.hr.js
│ ├── lang.hu.js
│ ├── lang.hy.js
│ ├── lang.id.js
│ ├── lang.is.js
│ ├── lang.it.js
│ ├── lang.ja.js
│ ├── lang.ko.js
│ ├── lang.lt.js
│ ├── lang.lv.js
│ ├── lang.mk.js
│ ├── lang.ms.js
│ ├── lang.mt.js
│ ├── lang.nl.js
│ ├── lang.no.js
│ ├── lang.pl.js
│ ├── lang.pt-BR.js
│ ├── lang.pt-PT.js
│ ├── lang.ro.js
│ ├── lang.ru.js
│ ├── lang.sk.js
│ ├── lang.sl.js
│ ├── lang.sq.js
│ ├── lang.sr.js
│ ├── lang.sv.js
│ ├── lang.sw.js
│ ├── lang.test.js
│ ├── lang.th.js
│ ├── lang.tl.js
│ ├── lang.tr.js
│ ├── lang.uk.js
│ ├── lang.vi.js
│ ├── lang.yi.js
│ ├── lang.zh-CN.js
│ ├── lang.zh-HK.js
│ ├── lang.zh-TW.js
│ └── locale.js
│ ├── math.js
│ ├── path.js
│ ├── pathseg.js
│ ├── recalculate.js
│ ├── sanitize.js
│ ├── select.js
│ ├── spinbtn
│ ├── JQuerySpinBtn.css
│ ├── JQuerySpinBtn.js
│ ├── JQuerySpinBtn.min.js
│ └── spinbtn_updn.png
│ ├── svg-editor.css
│ ├── svg-editor.html
│ ├── svg-editor.js
│ ├── svg-editor.manifest
│ ├── svgcanvas.js
│ ├── svgedit.compiled.js
│ ├── svgedit.js
│ ├── svgicons
│ └── jquery.svgicons.js
│ ├── svgtransformlist.js
│ ├── svgutils.js
│ ├── touch.js
│ └── units.js
├── LICENSE
├── README.md
├── Resources
├── ElementWindow.png
├── ImageOcclusionEditor-v1.0.png
├── Licenses
│ ├── LICENSE.FileSignature
│ ├── LICENSE.svg-edit.txt
│ └── LICENSE.vvv-svg.txt
├── Template_IIOT.png
├── Template_IIOT.txt
├── Template_IIOTT.png
├── Template_IIOTT.txt
└── warning_24.png
├── Setup
└── Setup.vdproj
├── imageocclusioneditor.ico
└── pngcs-master
├── .gitignore
├── Doxyfile
├── Hjg.Pngcs
├── Chunks
│ ├── ChunkCopyBehaviour.cs
│ ├── ChunkHelper.cs
│ ├── ChunkLoadBehaviour.cs
│ ├── ChunkPredicate.cs
│ ├── ChunkPredicateEquiv.cs
│ ├── ChunkPredicateId.cs
│ ├── ChunkPredicateId2.cs
│ ├── ChunkRaw.cs
│ ├── ChunksList.cs
│ ├── ChunksListForWrite.cs
│ ├── PngChunk.cs
│ ├── PngChunkBKGD.cs
│ ├── PngChunkCHRM.cs
│ ├── PngChunkGAMA.cs
│ ├── PngChunkHIST.cs
│ ├── PngChunkICCP.cs
│ ├── PngChunkIDAT.cs
│ ├── PngChunkIEND.cs
│ ├── PngChunkIHDR.cs
│ ├── PngChunkITXT.cs
│ ├── PngChunkMultiple.cs
│ ├── PngChunkOFFS.cs
│ ├── PngChunkPHYS.cs
│ ├── PngChunkPLTE.cs
│ ├── PngChunkSBIT.cs
│ ├── PngChunkSPLT.cs
│ ├── PngChunkSRGB.cs
│ ├── PngChunkSTER.cs
│ ├── PngChunkSingle.cs
│ ├── PngChunkSkipped.cs
│ ├── PngChunkTEXT.cs
│ ├── PngChunkTIME.cs
│ ├── PngChunkTRNS.cs
│ ├── PngChunkTextVar.cs
│ ├── PngChunkUNKNOWN.cs
│ ├── PngChunkZTXT.cs
│ └── PngMetadata.cs
├── FileHelper.cs
├── FilterType.cs
├── FilterWriteStrategy.cs
├── Hjg.Pngcs.csproj
├── ImageInfo.cs
├── ImageLine.cs
├── ImageLineHelper.cs
├── ImageLines.cs
├── PngCsUtils.cs
├── PngDeinterlacer.cs
├── PngHelperInternal.cs
├── PngIDatChunkInputStream.cs
├── PngIDatChunkOutputStream.cs
├── PngReader.cs
├── PngWriter.cs
├── Pngcs.xml
├── PngjBadCrcException.cs
├── PngjException.cs
├── PngjExceptionInternal.cs
├── PngjInputException.cs
├── PngjOutputException.cs
├── PngjUnsupportedException.cs
├── ProgressiveOutputStream.cs
├── Properties
│ └── AssemblyInfo.cs
└── Zlib
│ ├── AZlibInputStream.cs
│ ├── AZlibOutputStream.cs
│ ├── Adler32.cs
│ ├── CRC32.cs
│ ├── DeflateCompressLevel.cs
│ ├── EDeflateCompressStrategy.cs
│ ├── ZlibInputStreamIs.cs
│ ├── ZlibInputStreamMs.cs
│ ├── ZlibOutputStreamIs.cs
│ ├── ZlibOutputStreamMs.cs
│ └── ZlibStreamFactory.cs
├── ICSharpCode.SharpZipLib.dll
├── LICENSE.txt
├── README.md
├── SamplesTests
├── App.config
├── MainProgram.cs
├── NullOutputStream.cs
├── Properties
│ └── AssemblyInfo.cs
├── SampleConvertToTrueCol.cs
├── SampleCreateOrange.cs
├── SampleCustomChunk.cs
├── SampleDecreaseRed.cs
├── SampleMirrorImage.cs
├── SampleShowChunks.cs
├── SamplesTests.csproj
├── TestPngSuite.cs
├── TestTextChunks.cs
├── TestZlib.cs
├── TestsHelper.cs
└── testsuite1
│ ├── PngSuite.LICENSE
│ ├── PngSuite.README
│ ├── PngSuite.png
│ ├── basi0g01.png
│ ├── basi0g02.png
│ ├── basi0g04.png
│ ├── basi0g08.png
│ ├── basi0g16.png
│ ├── basi2c08.png
│ ├── basi2c16.png
│ ├── basi3p01.png
│ ├── basi3p02.png
│ ├── basi3p04.png
│ ├── basi3p08.png
│ ├── basi4a08.png
│ ├── basi4a16.png
│ ├── basi6a08.png
│ ├── basi6a16.png
│ ├── basn0g01.png
│ ├── basn0g02.png
│ ├── basn0g04.png
│ ├── basn0g08.png
│ ├── basn0g16.png
│ ├── basn2c08.png
│ ├── basn2c16.png
│ ├── basn3p01.png
│ ├── basn3p02.png
│ ├── basn3p04.png
│ ├── basn3p08.png
│ ├── basn4a08.png
│ ├── basn4a16.png
│ ├── basn6a08.png
│ ├── basn6a16.png
│ ├── bgai4a08.png
│ ├── bgai4a16.png
│ ├── bgan6a08.png
│ ├── bgan6a16.png
│ ├── bgbn4a08.png
│ ├── bggn4a16.png
│ ├── bgwn6a08.png
│ ├── bgyn6a16.png
│ ├── ccwn2c08.png
│ ├── ccwn3p08.png
│ ├── cdfn2c08.png
│ ├── cdhn2c08.png
│ ├── cdsn2c08.png
│ ├── cdun2c08.png
│ ├── ch1n3p04.png
│ ├── ch2n3p08.png
│ ├── cm0n0g04.png
│ ├── cm7n0g04.png
│ ├── cm9n0g04.png
│ ├── cs3n2c16.png
│ ├── cs3n3p08.png
│ ├── cs5n2c08.png
│ ├── cs5n3p08.png
│ ├── cs8n2c08.png
│ ├── cs8n3p08.png
│ ├── ct0n0g04.png
│ ├── ct1n0g04.png
│ ├── cten0g04.png
│ ├── ctfn0g04.png
│ ├── ctgn0g04.png
│ ├── cthn0g04.png
│ ├── ctjn0g04.png
│ ├── ctzn0g04.png
│ ├── exif2c08.png
│ ├── f00n0g08.png
│ ├── f00n2c08.png
│ ├── f01n0g08.png
│ ├── f01n2c08.png
│ ├── f02n0g08.png
│ ├── f02n2c08.png
│ ├── f03n0g08.png
│ ├── f03n2c08.png
│ ├── f04n0g08.png
│ ├── f04n2c08.png
│ ├── f99n0g04.png
│ ├── g03n0g16.png
│ ├── g03n2c08.png
│ ├── g03n3p04.png
│ ├── g04n0g16.png
│ ├── g04n2c08.png
│ ├── g04n3p04.png
│ ├── g05n0g16.png
│ ├── g05n2c08.png
│ ├── g05n3p04.png
│ ├── g07n0g16.png
│ ├── g07n2c08.png
│ ├── g07n3p04.png
│ ├── g10n0g16.png
│ ├── g10n2c08.png
│ ├── g10n3p04.png
│ ├── g25n0g16.png
│ ├── g25n2c08.png
│ ├── g25n3p04.png
│ ├── oi1n0g16.png
│ ├── oi1n2c16.png
│ ├── oi2n0g16.png
│ ├── oi2n2c16.png
│ ├── oi4n0g16.png
│ ├── oi4n2c16.png
│ ├── oi9n0g16.png
│ ├── oi9n2c16.png
│ ├── pp0n2c16.png
│ ├── pp0n6a08.png
│ ├── ps1n0g08.png
│ ├── ps1n2c16.png
│ ├── ps2n0g08.png
│ ├── ps2n2c16.png
│ ├── s01i3p01.png
│ ├── s01n3p01.png
│ ├── s02i3p01.png
│ ├── s02n3p01.png
│ ├── s03i3p01.png
│ ├── s03n3p01.png
│ ├── s04i3p01.png
│ ├── s04n3p01.png
│ ├── s05i3p02.png
│ ├── s05n3p02.png
│ ├── s06i3p02.png
│ ├── s06n3p02.png
│ ├── s07i3p02.png
│ ├── s07n3p02.png
│ ├── s08i3p02.png
│ ├── s08n3p02.png
│ ├── s09i3p02.png
│ ├── s09n3p02.png
│ ├── s32i3p04.png
│ ├── s32n3p04.png
│ ├── s33i3p04.png
│ ├── s33n3p04.png
│ ├── s34i3p04.png
│ ├── s34n3p04.png
│ ├── s35i3p04.png
│ ├── s35n3p04.png
│ ├── s36i3p04.png
│ ├── s36n3p04.png
│ ├── s37i3p04.png
│ ├── s37n3p04.png
│ ├── s38i3p04.png
│ ├── s38n3p04.png
│ ├── s39i3p04.png
│ ├── s39n3p04.png
│ ├── s40i3p04.png
│ ├── s40n3p04.png
│ ├── tbbn0g04.png
│ ├── tbbn2c16.png
│ ├── tbbn3p08.png
│ ├── tbgn2c16.png
│ ├── tbgn3p08.png
│ ├── tbrn2c08.png
│ ├── tbwn0g16.png
│ ├── tbwn3p08.png
│ ├── tbyn3p08.png
│ ├── tm3n3p02.png
│ ├── tp0n0g08.png
│ ├── tp0n2c08.png
│ ├── tp0n3p08.png
│ ├── tp1n3p08.png
│ ├── xc1n0g08.png
│ ├── xc9n2c08.png
│ ├── xcrn0g04.png
│ ├── xcsn0g01.png
│ ├── xd0n2c08.png
│ ├── xd3n2c08.png
│ ├── xd9n2c08.png
│ ├── xdtn0g01.png
│ ├── xhdn0g08.png
│ ├── xlfn0g04.png
│ ├── xs1n0g01.png
│ ├── xs2n0g01.png
│ ├── xs4n0g01.png
│ ├── xs7n0g01.png
│ ├── z00n2c08.png
│ ├── z03n2c08.png
│ ├── z06n2c08.png
│ └── z09n2c08.png
├── changes.txt
├── dist
├── build_dist.sh
└── readme.txt
├── docs
└── html
│ ├── annotated.html
│ ├── bc_s.png
│ ├── bdwn.png
│ ├── class_ar_1_1_com_1_1_hjg_1_1_pngcs_1_1_png_deinterlacer-members.html
│ ├── class_ar_1_1_com_1_1_hjg_1_1_pngcs_1_1_png_deinterlacer.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_chunk_copy_behaviour-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_chunk_copy_behaviour.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_chunk_helper-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_chunk_helper.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_chunk_raw-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_chunk_raw.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_chunks_list-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_chunks_list.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_chunks_list_for_write-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_chunks_list_for_write.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_b_k_g_d-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_b_k_g_d.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_c_h_r_m-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_c_h_r_m.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_g_a_m_a-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_g_a_m_a.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_h_i_s_t-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_h_i_s_t.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_i_c_c_p-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_i_c_c_p.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_i_d_a_t-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_i_d_a_t.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_i_e_n_d-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_i_e_n_d.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_i_h_d_r-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_i_h_d_r.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_i_t_x_t-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_i_t_x_t.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_multiple-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_multiple.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_o_f_f_s-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_o_f_f_s.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_p_h_y_s-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_p_h_y_s.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_p_l_t_e-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_p_l_t_e.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_s_b_i_t-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_s_b_i_t.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_s_p_l_t-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_s_p_l_t.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_s_r_g_b-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_s_r_g_b.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_s_t_e_r-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_s_t_e_r.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_single-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_single.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_skipped-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_skipped.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_t_e_x_t-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_t_e_x_t.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_t_i_m_e-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_t_i_m_e.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_t_r_n_s-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_t_r_n_s.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_text_var-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_text_var.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_text_var_1_1_png_txt_info-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_text_var_1_1_png_txt_info.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_u_n_k_n_o_w_n-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_u_n_k_n_o_w_n.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_z_t_x_t-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_chunk_z_t_x_t.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_metadata-members.html
│ ├── class_hjg_1_1_pngcs_1_1_chunks_1_1_png_metadata.html
│ ├── class_hjg_1_1_pngcs_1_1_file_helper-members.html
│ ├── class_hjg_1_1_pngcs_1_1_file_helper.html
│ ├── class_hjg_1_1_pngcs_1_1_image_info-members.html
│ ├── class_hjg_1_1_pngcs_1_1_image_info.html
│ ├── class_hjg_1_1_pngcs_1_1_image_line-members.html
│ ├── class_hjg_1_1_pngcs_1_1_image_line.html
│ ├── class_hjg_1_1_pngcs_1_1_image_line_helper-members.html
│ ├── class_hjg_1_1_pngcs_1_1_image_line_helper.html
│ ├── class_hjg_1_1_pngcs_1_1_image_lines-members.html
│ ├── class_hjg_1_1_pngcs_1_1_image_lines.html
│ ├── class_hjg_1_1_pngcs_1_1_png_deinterlacer-members.html
│ ├── class_hjg_1_1_pngcs_1_1_png_deinterlacer.html
│ ├── class_hjg_1_1_pngcs_1_1_png_helper_internal-members.html
│ ├── class_hjg_1_1_pngcs_1_1_png_helper_internal.html
│ ├── class_hjg_1_1_pngcs_1_1_png_i_dat_chunk_input_stream_1_1_idat_chunk_info-members.html
│ ├── class_hjg_1_1_pngcs_1_1_png_i_dat_chunk_input_stream_1_1_idat_chunk_info.html
│ ├── class_hjg_1_1_pngcs_1_1_png_reader-members.html
│ ├── class_hjg_1_1_pngcs_1_1_png_reader.html
│ ├── class_hjg_1_1_pngcs_1_1_png_writer-members.html
│ ├── class_hjg_1_1_pngcs_1_1_png_writer.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_bad_crc_exception-members.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_bad_crc_exception.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_exception-members.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_exception.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_exception_internal-members.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_exception_internal.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_input_exception-members.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_input_exception.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_output_exception-members.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_output_exception.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_unsupported_exception-members.html
│ ├── class_hjg_1_1_pngcs_1_1_pngj_unsupported_exception.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_a_zlib_input_stream-members.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_a_zlib_input_stream.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_a_zlib_output_stream-members.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_a_zlib_output_stream.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_adler32-members.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_adler32.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_c_r_c32-members.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_c_r_c32.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_deflate_compress_level-members.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_deflate_compress_level.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_zlib_stream_factory-members.html
│ ├── class_hjg_1_1_pngcs_1_1_zlib_1_1_zlib_stream_factory.html
│ ├── classes.html
│ ├── closed.png
│ ├── dir_07e73fb754cfe8f4105d329e9ca6b863.html
│ ├── dir_1b9ac3b170fffcdd28e62d8bb45cbfb6.html
│ ├── dir_611a0b9c2a8c92c15345277b927c34d7.html
│ ├── dir_649f1a1fa388e51789ae8f01ed0a0510.html
│ ├── dir_8c3e0211de989e233156308bb7bdddcf.html
│ ├── dir_bd5ae2d9d8389944217a0bf6d7a513e4.html
│ ├── dir_c86208b88d7447605576cfa5465d91db.html
│ ├── dir_e12292d237c25a2ac81569749bfdb440.html
│ ├── dir_e71bb683e142f52dd9bafc7f8c4d247b.html
│ ├── dir_edd49de2fee0b30909e09ef335eaf61c.html
│ ├── dir_fe7c4bb4a5a3b81e53707c01dcfad30b.html
│ ├── doxygen.css
│ ├── doxygen.png
│ ├── dynsections.js
│ ├── ftv2blank.png
│ ├── ftv2cl.png
│ ├── ftv2doc.png
│ ├── ftv2folderclosed.png
│ ├── ftv2folderopen.png
│ ├── ftv2lastnode.png
│ ├── ftv2link.png
│ ├── ftv2mlastnode.png
│ ├── ftv2mnode.png
│ ├── ftv2mo.png
│ ├── ftv2node.png
│ ├── ftv2ns.png
│ ├── ftv2plastnode.png
│ ├── ftv2pnode.png
│ ├── ftv2splitbar.png
│ ├── ftv2vertline.png
│ ├── functions.html
│ ├── functions_0x62.html
│ ├── functions_0x63.html
│ ├── functions_0x64.html
│ ├── functions_0x65.html
│ ├── functions_0x66.html
│ ├── functions_0x67.html
│ ├── functions_0x69.html
│ ├── functions_0x6b.html
│ ├── functions_0x6c.html
│ ├── functions_0x6d.html
│ ├── functions_0x6e.html
│ ├── functions_0x6f.html
│ ├── functions_0x70.html
│ ├── functions_0x71.html
│ ├── functions_0x72.html
│ ├── functions_0x73.html
│ ├── functions_0x74.html
│ ├── functions_0x75.html
│ ├── functions_0x77.html
│ ├── functions_enum.html
│ ├── functions_func.html
│ ├── functions_func_0x63.html
│ ├── functions_func_0x64.html
│ ├── functions_func_0x65.html
│ ├── functions_func_0x66.html
│ ├── functions_func_0x67.html
│ ├── functions_func_0x69.html
│ ├── functions_func_0x6c.html
│ ├── functions_func_0x6d.html
│ ├── functions_func_0x6f.html
│ ├── functions_func_0x70.html
│ ├── functions_func_0x71.html
│ ├── functions_func_0x72.html
│ ├── functions_func_0x73.html
│ ├── functions_func_0x74.html
│ ├── functions_func_0x75.html
│ ├── functions_func_0x77.html
│ ├── functions_prop.html
│ ├── functions_vars.html
│ ├── hierarchy.html
│ ├── index.html
│ ├── interface_hjg_1_1_pngcs_1_1_chunks_1_1_chunk_predicate-members.html
│ ├── interface_hjg_1_1_pngcs_1_1_chunks_1_1_chunk_predicate.html
│ ├── jquery.js
│ ├── namespace_ar.html
│ ├── namespace_ar_1_1_com.html
│ ├── namespace_ar_1_1_com_1_1_hjg.html
│ ├── namespace_ar_1_1_com_1_1_hjg_1_1_pngcs.html
│ ├── namespace_hjg.html
│ ├── namespace_hjg_1_1_pngcs.html
│ ├── namespace_hjg_1_1_pngcs_1_1_chunks.html
│ ├── namespace_hjg_1_1_pngcs_1_1_zlib.html
│ ├── namespacemembers.html
│ ├── namespacemembers_enum.html
│ ├── nav_f.png
│ ├── nav_g.png
│ ├── nav_h.png
│ ├── open.png
│ ├── sync_off.png
│ ├── sync_on.png
│ ├── tab_a.png
│ ├── tab_b.png
│ ├── tab_h.png
│ ├── tab_s.png
│ └── tabs.css
└── pngcs.sln
/.gitattributes:
--------------------------------------------------------------------------------
1 | ImageOcclusionEditor/svg-edit/* linguist-vendored
2 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | False
15 |
16 |
17 | 0, 0
18 |
19 |
20 | 1080, 720
21 |
22 |
23 | False
24 |
25 |
26 | 2D2D2D
27 |
28 |
29 | 2
30 |
31 |
32 | FFEBA2
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/PngChunkSVGI.cs:
--------------------------------------------------------------------------------
1 | using Hjg.Pngcs;
2 | using Hjg.Pngcs.Chunks;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 |
10 | namespace ImageOcclusionEditor
11 | {
12 | class PngChunkSVGI : PngChunkSingle
13 | {
14 | // ID must follow the PNG conventions: four ascii letters,
15 | // ID[0] : lowercase (ancillary)
16 | // ID[1] : lowercase if private, upppecase if public
17 | // ID[3] : uppercase if "safe to copy"
18 | public readonly static String ID = "svGi";
19 |
20 | private string svg;
21 |
22 | public PngChunkSVGI(ImageInfo info)
23 | : base(ID, info)
24 | {
25 | svg = string.Empty;
26 | }
27 |
28 | public override ChunkOrderingConstraint GetOrderingConstraint()
29 | {
30 | // change this if you don't require this chunk to be before IDAT, etc
31 | return ChunkOrderingConstraint.BEFORE_IDAT;
32 | }
33 |
34 | // in this case, we have that the chunk data corresponds to the serialized object
35 | public override ChunkRaw CreateRawChunk()
36 | {
37 | ChunkRaw c = null;
38 |
39 | byte[] arr = Encoding.UTF8.GetBytes(svg);
40 | c = createEmptyChunk(arr.Length, true);
41 | c.Data = arr;
42 |
43 | return c;
44 | }
45 |
46 | public override void ParseFromRaw(ChunkRaw c)
47 | {
48 | svg = Encoding.UTF8.GetString(c.Data);
49 | }
50 |
51 | public override void CloneDataFromRead(PngChunk other)
52 | {
53 | PngChunkSVGI otherx = (PngChunkSVGI)other;
54 | this.svg = otherx.svg; // shallow clone, we could implement other copying
55 | }
56 |
57 | public string GetSVG()
58 | {
59 | return svg;
60 | }
61 |
62 | public void SetSVG(string osvg)
63 | {
64 | this.svg = osvg;
65 | }
66 |
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("ImageOcclusionEditor")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("ImageOcclusionEditor")]
13 | [assembly: AssemblyCopyright("Copyright © 2018")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("6f73c146-b354-47d2-aebd-6af2ef20aa73")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.1.*")]
36 | [assembly: AssemblyFileVersion("1.0.1.0")]
37 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | False
7 |
8 |
9 | 0, 0
10 |
11 |
12 | 1080, 720
13 |
14 |
15 | False
16 |
17 |
18 | 2D2D2D
19 |
20 |
21 | 2
22 |
23 |
24 | FFEBA2
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/imageocclusioneditor.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/imageocclusioneditor.ico
--------------------------------------------------------------------------------
/ImageOcclusionEditor/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/browser-not-supported.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Browser does not support SVG | SVG-edit
10 |
11 |
12 |
13 |
20 |
21 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/embedapi.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Embed API
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/allowedMimeTypes.php:
--------------------------------------------------------------------------------
1 | 'image/svg+xml;charset=UTF-8',
5 | 'png' => 'image/png',
6 | 'jpeg' => 'image/jpeg',
7 | 'bmp' => 'image/bmp',
8 | 'webp' => 'image/webp',
9 | 'pdf' => 'application/pdf'
10 | );
11 |
12 | ?>
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/closepath_icons.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/ext-imagelib.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/ext-panning.js:
--------------------------------------------------------------------------------
1 | /*globals svgEditor, svgCanvas*/
2 | /*jslint eqeq: true*/
3 | /*
4 | * ext-panning.js
5 | *
6 | * Licensed under the MIT License
7 | *
8 | * Copyright(c) 2013 Luis Aguirre
9 | *
10 | */
11 |
12 | /*
13 | This is a very basic SVG-Edit extension to let tablet/mobile devices panning without problem
14 | */
15 |
16 | svgEditor.addExtension('ext-panning', function() {'use strict';
17 | return {
18 | name: 'Extension Panning',
19 | svgicons: svgEditor.curConfig.extPath + 'ext-panning.xml',
20 | buttons: [{
21 | id: 'ext-panning',
22 | type: 'mode',
23 | title: 'Panning',
24 | events: {
25 | click: function() {
26 | svgCanvas.setMode('ext-panning');
27 | }
28 | }
29 | }],
30 | mouseDown: function() {
31 | if (svgCanvas.getMode() == 'ext-panning') {
32 | svgEditor.setPanning(true);
33 | return {started: true};
34 | }
35 | },
36 | mouseUp: function() {
37 | if (svgCanvas.getMode() == 'ext-panning') {
38 | svgEditor.setPanning(false);
39 | return {
40 | keep: false,
41 | element: null
42 | };
43 | }
44 | }
45 | };
46 | });
47 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/ext-panning.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/ext-php_savefile.js:
--------------------------------------------------------------------------------
1 | /*globals $, svgCanvas, svgEditor*/
2 | /*jslint regexp:true*/
3 | // TODO: Might add support for "exportImage" custom
4 | // handler as in "ext-server_opensave.js" (and in savefile.php)
5 |
6 | svgEditor.addExtension("php_savefile", {
7 | callback: function() {
8 | 'use strict';
9 | function getFileNameFromTitle () {
10 | var title = svgCanvas.getDocumentTitle();
11 | return $.trim(title);
12 | }
13 | var save_svg_action = svgEditor.curConfig.extPath + 'savefile.php';
14 | svgEditor.setCustomHandlers({
15 | save: function(win, data) {
16 | var svg = '\n' + data,
17 | filename = getFileNameFromTitle();
18 |
19 | $.post(save_svg_action, {output_svg: svg, filename: filename});
20 | }
21 | });
22 | }
23 | });
24 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/ext-shapes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/ext-xdomain-messaging.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Should not be needed for same domain control (just call via child frame),
3 | * but an API common for cross-domain and same domain use can be found
4 | * in embedapi.js with a demo at embedapi.html
5 | */
6 | /*globals svgEditor, svgCanvas*/
7 | svgEditor.addExtension('xdomain-messaging', function() {'use strict';
8 | try {
9 | window.addEventListener('message', function(e) {
10 | // We accept and post strings for the sake of IE9 support
11 | if (typeof e.data !== 'string' || e.data.charAt() === '|') {
12 | return;
13 | }
14 | var cbid, name, args, message, allowedOrigins, data = JSON.parse(e.data);
15 | if (!data || typeof data !== 'object' || data.namespace !== 'svgCanvas') {
16 | return;
17 | }
18 | // The default is not to allow any origins, including even the same domain or if run on a file:// URL
19 | // See config-sample.js for an example of how to configure
20 | allowedOrigins = svgEditor.curConfig.allowedOrigins;
21 | if (allowedOrigins.indexOf('*') === -1 && allowedOrigins.indexOf(e.origin) === -1) {
22 | return;
23 | }
24 | cbid = data.id;
25 | name = data.name;
26 | args = data.args;
27 | message = {
28 | namespace: 'svg-edit',
29 | id: cbid
30 | };
31 | try {
32 | message.result = svgCanvas[name].apply(svgCanvas, args);
33 | } catch (err) {
34 | message.error = err.message;
35 | }
36 | e.source.postMessage(JSON.stringify(message), '*');
37 | }, false);
38 | }
39 | catch (err) {
40 | console.log('Error with xdomain message listener: ' + err);
41 | }
42 | });
43 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/eyedropper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/extensions/eyedropper.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/fileopen.php:
--------------------------------------------------------------------------------
1 |
2 |
43 |
44 |
45 |
46 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/filesave.php:
--------------------------------------------------------------------------------
1 | 0) {
34 | $file = $_POST['filename'] . $suffix;
35 | } else {
36 | $file = 'image' . $suffix;
37 | }
38 |
39 | if ($suffix == '.svg') {
40 | $contents = $_POST['output_svg'];
41 | } else {
42 | $contents = $_POST['output_img'];
43 | $pos = (strpos($contents, 'base64,') + 7);
44 | $contents = base64_decode(substr($contents, $pos));
45 | }
46 |
47 | header("Cache-Control: public");
48 | header("Content-Description: File Transfer");
49 |
50 | // See http://tools.ietf.org/html/rfc6266#section-4.1
51 | header("Content-Disposition: attachment; filename*=UTF-8''" . encodeRFC5987ValueChars(
52 | // preg_replace('@[\\\\/:*?"<>|]@', '', $file) // If we wanted to strip Windows-disallowed characters server-side (but not a security issue, so we can strip client-side instead)
53 | $file
54 | ));
55 | header("Content-Type: " . $mime);
56 | header("Content-Transfer-Encoding: binary");
57 |
58 | echo $contents;
59 |
60 | ?>
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/grid-icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/helloworld-icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 | Layer 1
15 |
16 | Hello
17 | World!
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/imagelib/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Select an image:
10 | smiley.svg
11 |
12 | logo.png
13 |
14 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/imagelib/smiley.svg:
--------------------------------------------------------------------------------
1 |
2 | Cool smiley
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/polygon-icons.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/savefile.php:
--------------------------------------------------------------------------------
1 | |]@u', '_', $_POST['filename']) : 'saved') . '.svg'; // These characters are indicated as prohibited by Windows
12 |
13 | $fh = fopen($filename, 'w') or die("Can't open file");
14 | fwrite($fh, $svg);
15 | fclose($fh);
16 | ?>
17 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/shapelib/math.json:
--------------------------------------------------------------------------------
1 | {"data": {
2 | "divide": "m150,0.99785l0,0c25.17819,0 45.58916,20.41097 45.58916,45.58916c0,25.17821 -20.41096,45.58916 -45.58916,45.58916c-25.17822,0 -45.58916,-20.41093 -45.58916,-45.58916c0,-25.1782 20.41093,-45.58916 45.58916,-45.58916zm0,296.25203c-25.17822,0 -45.58916,-20.41095 -45.58916,-45.58917c0,-25.17819 20.41093,-45.58916 45.58916,-45.58916c25.17819,0 45.58916,20.41096 45.58916,45.58916c0,25.17822 -20.41096,45.58917 -45.58916,45.58917zm-134.06754,-193.71518l268.13507,0l0,91.17833l-268.13507,0z",
3 | "equal": "m0.99915,31.03476l297.3767,0l0,95.17349l-297.3767,0zm0,47.58677l297.3767,0l0,95.17349l-297.3767,0z",
4 | "minus": "m0.99887,102.39503l297.49445,0l0,95.2112l-297.49445,0z",
5 | "not_equal": "m40.81188,62.2131l103.7978,0l22.27972,-61.2131l65.67503,23.90375l-13.5795,37.30935l40.20317,0l0,69.88993l-65.64099,0l-12.71893,34.94495l78.35992,0l0,69.88991l-103.79779,0l-22.27972,61.21309l-65.67503,-23.90378l13.57949,-37.30933l-40.20319,0l0,-69.88991l65.64102,0l12.71894,-34.94498l-78.35995,0z",
6 | "times": "m1.00089,73.36786l72.36697,-72.36697l76.87431,76.87368l76.87431,-76.87368l72.36765,72.36697l-76.87433,76.87431l76.87433,76.87431l-72.36765,72.36765l-76.87431,-76.87433l-76.87431,76.87433l-72.36697,-72.36765l76.87368,-76.87431l-76.87368,-76.87431z",
7 | "plus": "m1.00211,102.40185l101.39974,0l0,-101.39975l95.45412,0l0,101.39975l101.3997,0l0,95.45412l-101.3997,0l0,101.3997l-95.45412,0l0,-101.3997l-101.39974,0z"
8 | }
9 | }
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/shapelib/raphael.txt:
--------------------------------------------------------------------------------
1 | All Raphaël icons were retrieved from here:
2 | http://raphaeljs.com/icons/
3 |
4 | And fall under the MIT license:
5 |
6 | Copyright © 2008 Dmitry Baranovskiy
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
11 |
12 | The software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/star-icons.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/extensions/webappfind-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/align-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/align-bottom.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/align-center.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/align-center.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/align-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/align-left.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/align-middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/align-middle.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/align-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/align-right.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/align-top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/align-top.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/bold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/bold.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/cancel.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/circle.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/clear.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/clone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/clone.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/conn.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | Layer 1
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/copy.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/cut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/cut.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/delete.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/document-properties.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/document-properties.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/dropdown.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/dropdown.gif
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/ellipse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/ellipse.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/eye.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/eye.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/fhpath.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/fhpath.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/flyouth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/flyouth.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/flyup.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/flyup.gif
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/freehand-circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/freehand-circle.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/freehand-square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/freehand-square.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/go-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/go-down.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/go-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/go-up.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/image.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/italic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/italic.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/line.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/link_controls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/link_controls.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/logo.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/move_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/move_bottom.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/move_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/move_top.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/node_clone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/node_clone.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/node_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/node_delete.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/none.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/open.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/paste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/paste.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/path.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/path.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/polygon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/polygon.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/rect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/rect.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/redo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/redo.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/reorient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/reorient.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/rotate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/rotate.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/save.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/select.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/select_node.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/select_node.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/sep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/sep.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/shape_group_elements.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/shape_group_elements.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/shape_ungroup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/shape_ungroup.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/source.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/source.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/spinbtn_updn_big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/spinbtn_updn_big.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/square.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/svg_edit_icons.svgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/svg_edit_icons.svgz
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/text.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/to_path.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/to_path.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/undo.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/view-refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/view-refresh.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/wave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/wave.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/wireframe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/wireframe.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/images/zoom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/images/zoom.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/README:
--------------------------------------------------------------------------------
1 | jGraduate - A jQuery plugin for picking gradients
2 |
3 | Licensed under the Apache License 2. See LICENSE for more information.
4 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/AlphaBar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/AlphaBar.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/Bars.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/Bars.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/Maps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/Maps.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/NoColor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/NoColor.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/bar-opacity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/bar-opacity.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/map-opacity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/map-opacity.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/mappoint.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/mappoint.gif
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/mappoint_c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/mappoint_c.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/mappoint_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/mappoint_f.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/picker.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/picker.gif
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/preview-opacity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/preview-opacity.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/rangearrows.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/rangearrows.gif
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/jgraduate/images/rangearrows2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/jgraduate/images/rangearrows2.gif
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/js-hotkeys/README.md:
--------------------------------------------------------------------------------
1 | #About
2 | **jQuery Hotkeys** is a plug-in that lets you easily add and remove handlers for keyboard events anywhere in your code supporting almost any key combination.
3 |
4 | This plugin is based off of the plugin by Tzury Bar Yochay: [jQuery.hotkeys](http://github.com/tzuryby/hotkeys)
5 |
6 | The syntax is as follows:
7 |
8 | $(expression).bind(types, keys, handler);
9 | $(expression).unbind(types, handler);
10 |
11 | $(document).bind('keydown', 'ctrl+a', fn);
12 |
13 | // e.g. replace '$' sign with 'EUR'
14 | $('input.foo').bind('keyup', '$', function(){
15 | this.value = this.value.replace('$', 'EUR');
16 | });
17 |
18 | ## Types
19 | Supported types are `'keydown'`, `'keyup'` and `'keypress'`
20 |
21 | ## Notes
22 |
23 | If you want to use more than one modifiers (e.g. alt+ctrl+z) you should define them by an alphabetical order e.g. alt+ctrl+shift
24 |
25 | Hotkeys aren't tracked if you're inside of an input element (unless you explicitly bind the hotkey directly to the input). This helps to avoid conflict with normal user typing.
26 |
27 | ## jQuery Compatibility
28 |
29 | Works with jQuery 1.4.2 and newer.
30 |
31 | It known to be working with all the major browsers on all available platforms (Win/Mac/Linux)
32 |
33 | * IE 6/7/8
34 | * FF 1.5/2/3
35 | * Opera-9
36 | * Safari-3
37 | * Chrome-0.2
38 |
39 | ### Addendum
40 |
41 | Firefox is the most liberal one in the manner of letting you capture all short-cuts even those that are built-in in the browser such as `Ctrl-t` for new tab, or `Ctrl-a` for selecting all text. You can always bubble them up to the browser by returning `true` in your handler.
42 |
43 | Others, (IE) either let you handle built-in short-cuts, but will add their functionality after your code has executed. Or (Opera/Safari) will *not* pass those events to the DOM at all.
44 |
45 | *So, if you bind `Ctrl-Q` or `Alt-F4` and your Safari/Opera window is closed don't be surprised.*
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/js-hotkeys/jquery.hotkeys.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | * jQuery Hotkeys Plugin
3 | * Copyright 2010, John Resig
4 | * Dual licensed under the MIT or GPL Version 2 licenses.
5 | *
6 | * http://github.com/jeresig/jquery.hotkeys
7 | *
8 | * Based upon the plugin by Tzury Bar Yochay:
9 | * http://github.com/tzuryby/hotkeys
10 | *
11 | * Original idea by:
12 | * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
13 | */
14 |
15 | (function(b){b.hotkeys={version:"0.8",specialKeys:{8:"backspace",9:"tab",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",191:"/",224:"meta",219:"[",221:"]"},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"}};function a(d){if(typeof d.data!=="string"){return}var c=d.handler,e=d.data.toLowerCase().split(" ");d.handler=function(n){if(this!==n.target&&(/textarea|select/i.test(n.target.nodeName)||n.target.type==="text")){return}var h=n.type!=="keypress"&&b.hotkeys.specialKeys[n.which],o=String.fromCharCode(n.which).toLowerCase(),k,m="",g={};if(n.altKey&&h!=="alt"){m+="alt+"}if(n.ctrlKey&&h!=="ctrl"){m+="ctrl+"}if(n.metaKey&&!n.ctrlKey&&h!=="meta"){m+="meta+"}if(n.shiftKey&&h!=="shift"){m+="shift+"}if(h){g[m+h]=true}else{g[m+o]=true;g[m+b.hotkeys.shiftNums[o]]=true;if(m==="shift+"){g[b.hotkeys.shiftNums[o]]=true}}for(var j=0,f=e.length;j look like a spinbutton/spinbox control.
3 | Use with JQuerySpinBtn.js to provide the spin functionality by reacting to mouse etc.
4 | (Requires a reference to the JQuery library found at http://jquery.com/src/latest/)
5 | (Hats-off to John Resig for creating the excellent JQuery library. It is fab.)
6 |
7 | This control is achieved with no extra html markup whatsoever and uses unobtrusive javascript.
8 |
9 | Written by George Adamson, Software Unity (george.jquery@softwareunity.com) September 2006.
10 | Big improvements added by Mark Gibson, (mgibson@designlinks.net) September 2006.
11 |
12 | Do contact me with comments and suggestions but please don't ask for support.
13 | As much as I'd love to help with specific problems I have plenty to get on with already!
14 |
15 | Go ahead and use it in your own projects. This code is provided 'as is'.
16 | Sure I've tested in heaps of ways. Its good for me, but you use it at your own risk.
17 | SoftwareUnity and I are certainly not responsible if your computer sets fire to the sofa,
18 | hacks into the pentagon, hijacks a plane or gives you any kind of hassle whatsoever.
19 |
20 | If you'd like your spin-button image in a different place then you'll need to alter both
21 | the CSS below and the javascript isMouseOverUpDn() function to accommodate the new position.
22 | You could even have left and right buttons either side of the textbox.
23 | */
24 |
25 | INPUT.spin-button {
26 | /* explicitly put padding for top/bottom/left in here so that Opera displays it better */
27 | padding: 2px 20px 2px 2px;
28 | background-repeat:no-repeat; /* Warning: Img may disappear in Firefox if you use 'background-attachment:fixed' ! */
29 | background-position:100% 0%;
30 | background-image:url('spinbtn_updn.png');
31 | background-color:white; /* Needed for Opera */
32 | }
33 |
34 | INPUT.spin-button.up { /* Change button img when mouse is over the UP-arrow */
35 | cursor:pointer;
36 | background-position:100% -18px; /* 18px matches height of 2 visible buttons */
37 | }
38 | INPUT.spin-button.down { /* Change button img when mouse is over the DOWN-arrow */
39 | cursor:pointer;
40 | background-position:100% -36px; /* 36px matches height of 2x2 visible buttons */
41 | }
42 |
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/spinbtn/spinbtn_updn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/ImageOcclusionEditor/svg-edit/spinbtn/spinbtn_updn.png
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/svgedit.js:
--------------------------------------------------------------------------------
1 | /*globals $, svgedit*/
2 | /**
3 | *
4 | * Licensed under the MIT License
5 | * main object, loaded first so other modules have the guarantee of its existence
6 | */
7 |
8 | svgedit = {
9 | // common namepaces constants in alpha order
10 | NS: {
11 | HTML: 'http://www.w3.org/1999/xhtml',
12 | MATH: 'http://www.w3.org/1998/Math/MathML',
13 | SE: 'http://svg-edit.googlecode.com',
14 | SVG: 'http://www.w3.org/2000/svg',
15 | XLINK: 'http://www.w3.org/1999/xlink',
16 | XML: 'http://www.w3.org/XML/1998/namespace',
17 | XMLNS: 'http://www.w3.org/2000/xmlns/' // see http://www.w3.org/TR/REC-xml-names/#xmlReserved
18 | }
19 | };
20 |
21 | // return the svgedit.NS with key values switched and lowercase
22 | svgedit.getReverseNS = function() {'use strict';
23 | var reverseNS = {};
24 | $.each(this.NS, function(name, URI) {
25 | reverseNS[URI] = name.toLowerCase();
26 | });
27 | return reverseNS;
28 | };
--------------------------------------------------------------------------------
/ImageOcclusionEditor/svg-edit/touch.js:
--------------------------------------------------------------------------------
1 | // http://ross.posterous.com/2008/08/19/iphone-touch-events-in-javascript/
2 | function touchHandler(event) {'use strict';
3 |
4 | var simulatedEvent,
5 | touches = event.changedTouches,
6 | first = touches[0],
7 | type = "";
8 | switch (event.type) {
9 | case "touchstart": type = "mousedown"; break;
10 | case "touchmove": type = "mousemove"; break;
11 | case "touchend": type = "mouseup"; break;
12 | default: return;
13 | }
14 |
15 | // initMouseEvent(type, canBubble, cancelable, view, clickCount,
16 | // screenX, screenY, clientX, clientY, ctrlKey,
17 | // altKey, shiftKey, metaKey, button, relatedTarget);
18 |
19 | simulatedEvent = document.createEvent("MouseEvent");
20 | simulatedEvent.initMouseEvent(type, true, true, window, 1,
21 | first.screenX, first.screenY,
22 | first.clientX, first.clientY, false,
23 | false, false, false, 0/*left*/, null);
24 | if (touches.length < 2) {
25 | first.target.dispatchEvent(simulatedEvent);
26 | event.preventDefault();
27 | }
28 | }
29 |
30 | document.addEventListener('touchstart', touchHandler, true);
31 | document.addEventListener('touchmove', touchHandler, true);
32 | document.addEventListener('touchend', touchHandler, true);
33 | document.addEventListener('touchcancel', touchHandler, true);
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 supermemo
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Resources/ElementWindow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/Resources/ElementWindow.png
--------------------------------------------------------------------------------
/Resources/ImageOcclusionEditor-v1.0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/Resources/ImageOcclusionEditor-v1.0.png
--------------------------------------------------------------------------------
/Resources/Licenses/LICENSE.FileSignature:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Neil Harvey
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/Resources/Licenses/LICENSE.svg-edit.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2009-2012 by SVG-edit authors (see AUTHORS file)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/Resources/Template_IIOT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/Resources/Template_IIOT.png
--------------------------------------------------------------------------------
/Resources/Template_IIOT.txt:
--------------------------------------------------------------------------------
1 | Begin Element #4
2 | Source=d:\supermemo\test\test
3 | Parent=4
4 | ParentTitle=Parent Title
5 | Priority=0
6 | Begin ElementInfo #4
7 | Title=iiot Item Image Occlusion W/Text
8 | Type=Item
9 | Status=Memorized
10 | FirstGrade=8
11 | Ordinal=10004.000000
12 | Repetitions=1
13 | Lapses=0
14 | Interval=3
15 | LastRepetition=30.04.18
16 | AFactor=3.920
17 | UFactor=3.000
18 | ForgettingIndex=10
19 | Reference=
20 | SourceArticle=0
21 | End ElementInfo #4
22 | ElementColor=-16777211
23 | AutoPlay=1
24 | BackgroundImage=
25 | BackgroundFile=
26 | BackgroundStyle=Tile
27 | Scaled=1
28 | ReadPointComponent=0
29 | ReadPointStart=0
30 | ReadPointLength=0
31 | ReadPointScrollTop=0
32 | ComponentNo=3
33 | Begin Component #1
34 | Type=Image
35 | Cors=(4900,1,4900,9800)
36 | DisplayAt=251
37 | Hyperlink=0
38 | ImageName=
39 | ImageFile=
40 | Stretch=1
41 | ClickPlay=0
42 | TestElement=0
43 | Transparent=0
44 | Zoom=[0,0,0,0]
45 | End Component #1
46 | Begin Component #2
47 | Type=Image
48 | Cors=(4900,1,4900,9800)
49 | DisplayAt=63
50 | Hyperlink=0
51 | ImageName=
52 | ImageFile=
53 | Stretch=1
54 | ClickPlay=0
55 | TestElement=0
56 | Transparent=0
57 | Zoom=[0,0,0,0]
58 | End Component #2
59 | Begin Component #3
60 | Type=HTML
61 | Cors=(1,1,4900,9800)
62 | DisplayAt=255
63 | Hyperlink=0
64 | Text=
65 | TestElement=0
66 | ReadOnly=0
67 | FullHTML=1
68 | Style=0
69 | End Component #3
70 | Begin RepHist #4
71 | ElNo=4 Rep=1 Date=30.04.2018 Hour=17.722 Int=0 Grade=8 Laps=0 expFI=99 Priority=0
72 | End RepHist #4
73 | End Element #4
74 |
--------------------------------------------------------------------------------
/Resources/Template_IIOTT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/Resources/Template_IIOTT.png
--------------------------------------------------------------------------------
/Resources/Template_IIOTT.txt:
--------------------------------------------------------------------------------
1 | Begin Element #4
2 | Source=d:\supermemo\test\test
3 | Parent=4
4 | ParentTitle=Parent Title
5 | Priority=0
6 | Begin ElementInfo #4
7 | Title=iiott Item Image Occlusion W/Two Texts
8 | Type=Item
9 | Status=Memorized
10 | FirstGrade=8
11 | Ordinal=10004.000000
12 | Repetitions=1
13 | Lapses=0
14 | Interval=3
15 | LastRepetition=30.04.18
16 | AFactor=3.920
17 | UFactor=3.000
18 | ForgettingIndex=10
19 | Reference=
20 | SourceArticle=0
21 | End ElementInfo #4
22 | ElementColor=-16777211
23 | AutoPlay=1
24 | BackgroundImage=
25 | BackgroundFile=
26 | BackgroundStyle=Tile
27 | Scaled=1
28 | ReadPointComponent=0
29 | ReadPointStart=0
30 | ReadPointLength=0
31 | ReadPointScrollTop=0
32 | ComponentNo=4
33 | Begin Component #1
34 | Type=Image
35 | Cors=(4900,1,4900,9800)
36 | DisplayAt=251
37 | Hyperlink=0
38 | ImageName=
39 | ImageFile=
40 | Stretch=1
41 | ClickPlay=0
42 | TestElement=0
43 | Transparent=0
44 | Zoom=[0,0,0,0]
45 | End Component #1
46 | Begin Component #2
47 | Type=Image
48 | Cors=(4900,1,4900,9800)
49 | DisplayAt=63
50 | Hyperlink=0
51 | ImageName=
52 | ImageFile=
53 | Stretch=1
54 | ClickPlay=0
55 | TestElement=0
56 | Transparent=0
57 | Zoom=[0,0,0,0]
58 | End Component #2
59 | Begin Component #3
60 | Type=HTML
61 | Cors=(1,1,4900,4900)
62 | DisplayAt=255
63 | Hyperlink=0
64 | Text=
65 | TestElement=0
66 | ReadOnly=0
67 | FullHTML=1
68 | Style=0
69 | End Component #3
70 | Begin Component #4
71 | Type=HTML
72 | Cors=(1,4900,4900,4900)
73 | DisplayAt=255
74 | Hyperlink=0
75 | Text=
76 | TestElement=0
77 | ReadOnly=0
78 | FullHTML=1
79 | Style=0
80 | End Component #4
81 | Begin RepHist #4
82 | ElNo=4 Rep=1 Date=30.04.2018 Hour=17.722 Int=0 Grade=8 Laps=0 expFI=99 Priority=0
83 | End RepHist #4
84 | End Element #4
85 |
--------------------------------------------------------------------------------
/Resources/warning_24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/Resources/warning_24.png
--------------------------------------------------------------------------------
/imageocclusioneditor.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/imageocclusioneditor.ico
--------------------------------------------------------------------------------
/pngcs-master/.gitignore:
--------------------------------------------------------------------------------
1 | [Oo]bj
2 | [Bb]in
3 | *.user
4 | *.suo
5 | *.[Cc]ache
6 | *.bak
7 | *.ncb
8 | *.log
9 | *.DS_Store
10 | [Tt]humbs.db
11 | _ReSharper.*
12 | *.resharper
13 | Ankh.NoLoad
14 | *.zip
15 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/ChunkCopyBehaviour.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Hjg.Pngcs.Chunks {
6 | ///
7 | /// Behaviours for chunks transfer when reading and writing.
8 | ///
9 | ///
10 | /// They are bitmasks, can be OR-ed
11 | ///
12 | public class ChunkCopyBehaviour {
13 |
14 | ///
15 | /// Don't copy any chunk
16 | ///
17 | public static readonly int COPY_NONE = 0;
18 |
19 | ///
20 | /// Copy the Palette, if present
21 | ///
22 | public static readonly int COPY_PALETTE = 1;
23 |
24 | ///
25 | /// Copy all SAFE chunks
26 | ///
27 | public static readonly int COPY_ALL_SAFE = 1 << 2;
28 |
29 | ///
30 | /// Copy all chunks (includes palette)
31 | ///
32 | public static readonly int COPY_ALL = 1 << 3;
33 |
34 | ///
35 | /// Copy Physical resolution (DPI)
36 | ///
37 | public static readonly int COPY_PHYS = 1 << 4;
38 |
39 |
40 | ///
41 | /// Copy all textual chunks (not safe)
42 | ///
43 | public static readonly int COPY_TEXTUAL = 1 << 5;
44 |
45 | ///
46 | /// Copy transparency (not safe)
47 | ///
48 | public static readonly int COPY_TRANSPARENCY = 1 << 6; //
49 |
50 |
51 | ///
52 | /// Copy chunks unknown by our factory
53 | ///
54 | public static readonly int COPY_UNKNOWN = 1 << 7;
55 |
56 | ///
57 | /// Copy all known, except HIST, TIME and textual
58 | ///
59 | public static readonly int COPY_ALMOSTALL = 1 << 8;
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/ChunkLoadBehaviour.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs.Chunks {
2 |
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.ComponentModel;
7 | using System.IO;
8 | using System.Runtime.CompilerServices;
9 |
10 | ///
11 | /// Defines what to do with non critical chunks when reading
12 | ///
13 | public enum ChunkLoadBehaviour {
14 | ///
15 | /// all non-critical chunks are skippped
16 | ///
17 | LOAD_CHUNK_NEVER,
18 | ///
19 | /// load chunk if 'known' (registered with the factory)
20 | ///
21 | LOAD_CHUNK_KNOWN,
22 | ///
23 | /// load chunk if 'known' or safe to copy
24 | ///
25 | LOAD_CHUNK_IF_SAFE,
26 | ///
27 | /// load chunks always
28 | ///
29 | /// Notice that other restrictions might apply, see PngReader.SkipChunkMaxSize PngReader.SkipChunkIds
30 | ///
31 | LOAD_CHUNK_ALWAYS,
32 |
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/ChunkPredicate.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Hjg.Pngcs.Chunks {
6 | ///
7 | /// Decides if another chunk "matches", according to some criterion
8 | ///
9 | public interface ChunkPredicate {
10 | ///
11 | /// The other chunk matches with this one
12 | ///
13 | /// The other chunk
14 | /// true if matches
15 | bool Matches(PngChunk chunk);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/ChunkPredicateEquiv.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Hjg.Pngcs.Chunks {
6 | ///
7 | /// An ad-hoc criterion, perhaps useful, for equivalence.
8 | ///
9 | ///
10 | internal class ChunkPredicateEquiv : ChunkPredicate {
11 |
12 | private readonly PngChunk chunk;
13 | ///
14 | /// Creates predicate based of reference chunk
15 | ///
16 | ///
17 | public ChunkPredicateEquiv(PngChunk chunk) {
18 | this.chunk = chunk;
19 | }
20 | ///
21 | /// Check for match
22 | ///
23 | ///
24 | ///
25 | public bool Matches(PngChunk c) {
26 | return ChunkHelper.Equivalent(c, chunk);
27 | }
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/ChunkPredicateId.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 |
4 | using System.Text;
5 |
6 | namespace Hjg.Pngcs.Chunks {
7 | ///
8 | /// Match if have same Chunk Id
9 | ///
10 | internal class ChunkPredicateId : ChunkPredicate {
11 | private readonly string id;
12 | public ChunkPredicateId(String id) {
13 | this.id = id;
14 | }
15 | public bool Matches(PngChunk c) {
16 | return c.Id.Equals(id);
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/ChunkPredicateId2.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Hjg.Pngcs.Chunks
6 | {
7 | ///
8 | /// match if have same id and, if Text (or SPLT) if have the asame key
9 | ///
10 | ///
11 | /// This is the same as ChunkPredicateEquivalent, the only difference is that does not requires
12 | /// a chunk at construction time
13 | ///
14 | internal class ChunkPredicateId2 : ChunkPredicate
15 | {
16 |
17 | private readonly string id;
18 | private readonly string innerid;
19 | public ChunkPredicateId2(string id, string inner)
20 | {
21 | this.id = id;
22 | this.innerid = inner;
23 | }
24 | public bool Matches(PngChunk c)
25 | {
26 | if (!c.Id.Equals(id))
27 | return false;
28 | if (c is PngChunkTextVar && !((PngChunkTextVar)c).GetKey().Equals(innerid))
29 | return false;
30 | if (c is PngChunkSPLT && !((PngChunkSPLT)c).PalName.Equals(innerid))
31 | return false;
32 |
33 | return true;
34 | }
35 |
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/PngChunkGAMA.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs.Chunks {
2 |
3 | using Hjg.Pngcs;
4 | using System;
5 | using System.Collections;
6 | using System.Collections.Generic;
7 | using System.ComponentModel;
8 | using System.IO;
9 | using System.Runtime.CompilerServices;
10 |
11 | ///
12 | /// gAMA chunk, see http://www.w3.org/TR/PNG/#11gAMA
13 | ///
14 | public class PngChunkGAMA : PngChunkSingle {
15 | public const String ID = ChunkHelper.gAMA;
16 |
17 | private double gamma;
18 |
19 | public PngChunkGAMA(ImageInfo info)
20 | : base(ID, info) {
21 | }
22 |
23 | public override ChunkOrderingConstraint GetOrderingConstraint() {
24 | return ChunkOrderingConstraint.BEFORE_PLTE_AND_IDAT;
25 | }
26 |
27 | public override ChunkRaw CreateRawChunk() {
28 | ChunkRaw c = createEmptyChunk(4, true);
29 | int g = (int)(gamma * 100000 + 0.5d);
30 | Hjg.Pngcs.PngHelperInternal.WriteInt4tobytes(g, c.Data, 0);
31 | return c;
32 | }
33 |
34 | public override void ParseFromRaw(ChunkRaw chunk) {
35 | if (chunk.Length != 4)
36 | throw new PngjException("bad chunk " + chunk);
37 | int g = Hjg.Pngcs.PngHelperInternal.ReadInt4fromBytes(chunk.Data, 0);
38 | gamma = ((double)g) / 100000.0d;
39 | }
40 |
41 | public override void CloneDataFromRead(PngChunk other) {
42 | gamma = ((PngChunkGAMA)other).gamma;
43 | }
44 |
45 | public double GetGamma() {
46 | return gamma;
47 | }
48 |
49 | public void SetGamma(double gamma) {
50 | this.gamma = gamma;
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/PngChunkIDAT.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs.Chunks {
2 |
3 | using Hjg.Pngcs;
4 | using System;
5 | using System.Collections;
6 | using System.Collections.Generic;
7 | using System.ComponentModel;
8 | using System.IO;
9 | using System.Runtime.CompilerServices;
10 | ///
11 | /// IDAT chunk http://www.w3.org/TR/PNG/#11IDAT
12 | ///
13 | /// This object is dummy placeholder - We treat this chunk in a very different way than ancillary chnks
14 | ///
15 | public class PngChunkIDAT : PngChunkMultiple {
16 | public const String ID = ChunkHelper.IDAT;
17 |
18 | public PngChunkIDAT(ImageInfo i,int len, long offset)
19 | : base(ID, i) {
20 | this.Length = len;
21 | this.Offset = offset;
22 | }
23 |
24 | public override ChunkOrderingConstraint GetOrderingConstraint() {
25 | return ChunkOrderingConstraint.NA;
26 | }
27 |
28 | public override ChunkRaw CreateRawChunk() {// does nothing
29 | return null;
30 | }
31 |
32 | public override void ParseFromRaw(ChunkRaw c) { // does nothing
33 | }
34 |
35 | public override void CloneDataFromRead(PngChunk other) {
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/PngChunkIEND.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs.Chunks {
2 |
3 | using Hjg.Pngcs;
4 | using System;
5 | using System.Collections;
6 | using System.Collections.Generic;
7 | using System.ComponentModel;
8 | using System.IO;
9 | using System.Runtime.CompilerServices;
10 | ///
11 | /// IEND chunk http://www.w3.org/TR/PNG/#11IEND
12 | ///
13 | public class PngChunkIEND : PngChunkSingle {
14 | public const String ID = ChunkHelper.IEND;
15 |
16 | public PngChunkIEND(ImageInfo info)
17 | : base(ID, info) {
18 | }
19 |
20 | public override ChunkOrderingConstraint GetOrderingConstraint() {
21 | return ChunkOrderingConstraint.NA;
22 | }
23 |
24 | public override ChunkRaw CreateRawChunk() {
25 | ChunkRaw c = new ChunkRaw(0, ChunkHelper.b_IEND, false);
26 | return c;
27 | }
28 |
29 | public override void ParseFromRaw(ChunkRaw c) {
30 | // this is not used
31 | }
32 |
33 | public override void CloneDataFromRead(PngChunk other) {
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/PngChunkMultiple.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Hjg.Pngcs.Chunks {
6 | ///
7 | /// A Chunk type that allows duplicate in an image
8 | ///
9 | public abstract class PngChunkMultiple : PngChunk {
10 | internal PngChunkMultiple(String id, ImageInfo imgInfo)
11 | : base(id, imgInfo) {
12 |
13 | }
14 |
15 | public sealed override bool AllowsMultiple() {
16 | return true;
17 | }
18 |
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/PngChunkSRGB.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs.Chunks {
2 |
3 | using Hjg.Pngcs;
4 | using System;
5 | using System.Collections;
6 | using System.Collections.Generic;
7 | using System.ComponentModel;
8 | using System.IO;
9 | using System.Runtime.CompilerServices;
10 |
11 | ///
12 | /// sRGB chunk: http://www.w3.org/TR/PNG/#11sRGB
13 | ///
14 | public class PngChunkSRGB : PngChunkSingle {
15 | public const String ID = ChunkHelper.sRGB;
16 |
17 | public const int RENDER_INTENT_Perceptual = 0;
18 | public const int RENDER_INTENT_Relative_colorimetric = 1;
19 | public const int RENDER_INTENT_Saturation = 2;
20 | public const int RENDER_INTENT_Absolute_colorimetric = 3;
21 |
22 | public int Intent { get; set; }
23 |
24 | public PngChunkSRGB(ImageInfo info)
25 | : base(ID, info) {
26 | }
27 |
28 | public override ChunkOrderingConstraint GetOrderingConstraint() {
29 | return ChunkOrderingConstraint.BEFORE_PLTE_AND_IDAT;
30 | }
31 |
32 | public override ChunkRaw CreateRawChunk() {
33 | ChunkRaw c = null;
34 | c = createEmptyChunk(1, true);
35 | c.Data[0] = (byte)Intent;
36 | return c;
37 | }
38 |
39 | public override void ParseFromRaw(ChunkRaw c) {
40 | if (c.Length != 1)
41 | throw new PngjException("bad chunk length " + c);
42 | Intent = PngHelperInternal.ReadInt1fromByte(c.Data, 0);
43 | }
44 |
45 |
46 | public override void CloneDataFromRead(PngChunk other) {
47 | PngChunkSRGB otherx = (PngChunkSRGB)other;
48 | Intent = otherx.Intent;
49 | }
50 |
51 |
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/PngChunkSTER.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs.Chunks {
2 |
3 | using Hjg.Pngcs;
4 | using System;
5 | using System.Collections;
6 | using System.Collections.Generic;
7 | using System.ComponentModel;
8 | using System.IO;
9 | using System.Runtime.CompilerServices;
10 |
11 | ///
12 | /// sTER chunk: http://www.libpng.org/pub/png/spec/register/pngext-1.3.0-pdg.html#C.sTER
13 | ///
14 | public class PngChunkSTER : PngChunkSingle {
15 | public const String ID = "sTER";
16 |
17 | ///
18 | /// 0: cross-fuse layout 1: diverging-fuse layout
19 | ///
20 | public byte Mode { get; set; }
21 |
22 | public PngChunkSTER(ImageInfo info)
23 | : base(ID, info) { }
24 |
25 |
26 | public override ChunkOrderingConstraint GetOrderingConstraint() {
27 | return ChunkOrderingConstraint.BEFORE_IDAT;
28 | }
29 |
30 | public override ChunkRaw CreateRawChunk() {
31 | ChunkRaw c = createEmptyChunk(1, true);
32 | c.Data[0] = (byte)Mode;
33 | return c;
34 | }
35 |
36 | public override void ParseFromRaw(ChunkRaw chunk) {
37 | if (chunk.Length != 1)
38 | throw new PngjException("bad chunk length " + chunk);
39 | Mode = chunk.Data[0];
40 | }
41 |
42 | public override void CloneDataFromRead(PngChunk other) {
43 | PngChunkSTER otherx = (PngChunkSTER)other;
44 | this.Mode = otherx.Mode;
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/PngChunkSingle.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Hjg.Pngcs.Chunks {
6 | ///
7 | /// A Chunk type that does not allow duplicate in an image
8 | ///
9 | public abstract class PngChunkSingle : PngChunk {
10 | public PngChunkSingle(String id, ImageInfo imgInfo)
11 | : base(id, imgInfo) {
12 | }
13 |
14 | public sealed override bool AllowsMultiple() {
15 | return false;
16 | }
17 |
18 | public override int GetHashCode() {
19 | int prime = 31;
20 | int result = 1;
21 | result = prime * result + ((Id == null) ? 0 : Id.GetHashCode());
22 | return result;
23 | }
24 |
25 | public override bool Equals(object obj) {
26 | return (obj is PngChunkSingle && Id != null && Id.Equals(((PngChunkSingle)obj).Id));
27 | }
28 |
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/PngChunkSkipped.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using Hjg.Pngcs.Chunks;
5 | using Hjg.Pngcs;
6 |
7 | namespace Hjg.Pngcs.Chunks {
8 | class PngChunkSkipped : PngChunk {
9 | internal PngChunkSkipped(String id, ImageInfo imgInfo, int clen)
10 | : base(id, imgInfo) {
11 | this.Length = clen;
12 | }
13 |
14 | public sealed override bool AllowsMultiple() {
15 | return true;
16 | }
17 |
18 | public sealed override ChunkRaw CreateRawChunk() {
19 | throw new PngjException("Non supported for a skipped chunk");
20 | }
21 |
22 | public sealed override void ParseFromRaw(ChunkRaw c) {
23 | throw new PngjException("Non supported for a skipped chunk");
24 | }
25 |
26 | public sealed override void CloneDataFromRead(PngChunk other) {
27 | throw new PngjException("Non supported for a skipped chunk");
28 | }
29 |
30 | public override ChunkOrderingConstraint GetOrderingConstraint() {
31 | return ChunkOrderingConstraint.NONE;
32 | }
33 |
34 |
35 |
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/PngChunkTEXT.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs.Chunks {
2 |
3 | using Hjg.Pngcs;
4 | using System;
5 | using System.Collections;
6 | using System.Collections.Generic;
7 | using System.ComponentModel;
8 | using System.IO;
9 | using System.Runtime.CompilerServices;
10 |
11 | ///
12 | /// tEXt chunk: latin1 uncompressed text
13 | ///
14 | public class PngChunkTEXT : PngChunkTextVar {
15 | public const String ID = ChunkHelper.tEXt;
16 |
17 | public PngChunkTEXT(ImageInfo info)
18 | : base(ID, info) {
19 | }
20 |
21 | public override ChunkRaw CreateRawChunk() {
22 | if (key.Length == 0)
23 | throw new PngjException("Text chunk key must be non empty");
24 | byte[] b1 = Hjg.Pngcs.PngHelperInternal.charsetLatin1.GetBytes(key);
25 | byte[] b2 = Hjg.Pngcs.PngHelperInternal.charsetLatin1.GetBytes(val);
26 | ChunkRaw chunk = createEmptyChunk(b1.Length + b2.Length + 1, true);
27 | Array.Copy(b1, 0, chunk.Data, 0, b1.Length);
28 | chunk.Data[b1.Length] = 0;
29 | Array.Copy(b2, 0, chunk.Data, b1.Length + 1, b2.Length);
30 | return chunk;
31 | }
32 |
33 | public override void ParseFromRaw(ChunkRaw c) {
34 | int i;
35 | for (i = 0; i < c.Data.Length; i++)
36 | if (c.Data[i] == 0)
37 | break;
38 | key = Hjg.Pngcs.PngHelperInternal.charsetLatin1.GetString(c.Data, 0, i);
39 | i++;
40 | val = i < c.Data.Length ? Hjg.Pngcs.PngHelperInternal.charsetLatin1.GetString(c.Data, i, c.Data.Length - i) : "";
41 | }
42 |
43 | public override void CloneDataFromRead(PngChunk other) {
44 | PngChunkTEXT otherx = (PngChunkTEXT)other;
45 | key = otherx.key;
46 | val = otherx.val;
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Chunks/PngChunkUNKNOWN.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs.Chunks {
2 |
3 | using Hjg.Pngcs;
4 | using System;
5 | using System.Collections;
6 | using System.Collections.Generic;
7 | using System.ComponentModel;
8 | using System.IO;
9 | using System.Runtime.CompilerServices;
10 | ///
11 | /// Unknown (for our chunk factory) chunk type.
12 | ///
13 | public class PngChunkUNKNOWN : PngChunkMultiple {
14 |
15 | private byte[] data;
16 |
17 | public PngChunkUNKNOWN(String id, ImageInfo info)
18 | : base(id, info) {
19 | }
20 |
21 | private PngChunkUNKNOWN(PngChunkUNKNOWN c, ImageInfo info)
22 | : base(c.Id, info) {
23 | System.Array.Copy(c.data, 0, data, 0, c.data.Length);
24 | }
25 |
26 | public override ChunkOrderingConstraint GetOrderingConstraint() {
27 | return ChunkOrderingConstraint.NONE;
28 | }
29 |
30 |
31 | public override ChunkRaw CreateRawChunk() {
32 | ChunkRaw p = createEmptyChunk(data.Length, false);
33 | p.Data = this.data;
34 | return p;
35 | }
36 |
37 | public override void ParseFromRaw(ChunkRaw c) {
38 | data = c.Data;
39 | }
40 |
41 | /* does not copy! */
42 | public byte[] GetData() {
43 | return data;
44 | }
45 |
46 | /* does not copy! */
47 | public void SetData(byte[] data_0) {
48 | this.data = data_0;
49 | }
50 |
51 | public override void CloneDataFromRead(PngChunk other) {
52 | // THIS SHOULD NOT BE CALLED IF ALREADY CLONED WITH COPY CONSTRUCTOR
53 | PngChunkUNKNOWN c = (PngChunkUNKNOWN)other;
54 | data = c.data; // not deep copy
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/FileHelper.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs {
2 |
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.IO;
7 | using System.Text;
8 |
9 | ///
10 | /// A few utility static methods to read and write files
11 | ///
12 | ///
13 | public class FileHelper {
14 |
15 | public static Stream OpenFileForReading(String file) {
16 | Stream isx = null;
17 | if (file == null || !File.Exists(file))
18 | throw new PngjInputException("Cannot open file for reading (" + file + ")");
19 | isx = new FileStream(file, FileMode.Open);
20 | return isx;
21 | }
22 |
23 | public static Stream OpenFileForWriting(String file, bool allowOverwrite) {
24 | Stream osx = null;
25 | if (File.Exists(file) && !allowOverwrite)
26 | throw new PngjOutputException("File already exists (" + file + ") and overwrite=false");
27 | osx = new FileStream(file, FileMode.Create);
28 | return osx;
29 | }
30 |
31 | ///
32 | /// Given a filename and a ImageInfo, produces a PngWriter object, ready for writing.
33 | /// Path of file
34 | /// ImageInfo object
35 | /// Flag: if false and file exists, a PngjOutputException is thrown
36 | /// A PngWriter object, ready for writing
37 | public static PngWriter CreatePngWriter(String fileName, ImageInfo imgInfo, bool allowOverwrite) {
38 | return new PngWriter(OpenFileForWriting(fileName, allowOverwrite), imgInfo,
39 | fileName);
40 | }
41 |
42 | ///
43 | /// Given a filename, produces a PngReader object, ready for reading.
44 | ///
45 | /// Path of file
46 | /// PngReader, ready for reading
47 | public static PngReader CreatePngReader(String fileName) {
48 | return new PngReader(OpenFileForReading(fileName), fileName);
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/FilterType.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs {
2 |
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.ComponentModel;
7 | using System.IO;
8 | using System.Runtime.CompilerServices;
9 |
10 | ///
11 | /// Internal PNG predictor filter, or a strategy to select it.
12 | ///
13 | public enum FilterType {
14 | ///
15 | /// No filtering
16 | ///
17 | FILTER_NONE = 0,
18 | ///
19 | /// SUB filter: uses same row
20 | ///
21 | FILTER_SUB = 1,
22 | ///
23 | /// UP filter: uses previous row
24 | ///
25 | FILTER_UP = 2,
26 | ///
27 | ///AVERAGE filter: uses neighbors
28 | ///
29 | FILTER_AVERAGE = 3,
30 | ///
31 | /// PAETH predictor
32 | ///
33 | FILTER_PAETH = 4,
34 |
35 | ///
36 | /// Default strategy: select one of the standard filters depending on global image parameters
37 | ///
38 | FILTER_DEFAULT = -1, //
39 |
40 |
41 | ///
42 | /// Aggressive strategy: select dinamically the filters, trying every 8 rows
43 | ///
44 | FILTER_AGGRESSIVE = -2,
45 |
46 | ///
47 | /// Very aggressive and slow strategy: tries all filters for each row
48 | ///
49 | FILTER_VERYAGGRESSIVE = -3,
50 |
51 | ///
52 | /// Uses all fiters, one for lines, in cyclic way. Only useful for testing.
53 | ///
54 | FILTER_CYCLIC = -50,
55 |
56 | ///
57 | /// Not specified, placeholder for unknown or NA filters.
58 | ///
59 | FILTER_UNKNOWN = -100
60 | }
61 |
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/PngCsUtils.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs {
2 | using System;
3 | using System.Collections;
4 | using System.Collections.Generic;
5 | using System.ComponentModel;
6 | using System.IO;
7 | using System.Runtime.CompilerServices;
8 |
9 | ///
10 | /// Utility functions for C# porting
11 | ///
12 | ///
13 | internal class PngCsUtils {
14 | internal static bool arraysEqual4(byte[] ar1, byte[] ar2) {
15 | return (ar1[0] == ar2[0]) &&
16 | (ar1[1] == ar2[1]) &&
17 | (ar1[2] == ar2[2]) &&
18 | (ar1[3] == ar2[3]);
19 | }
20 |
21 |
22 | internal static bool arraysEqual(byte[] a1, byte[] a2) {
23 | if (a1.Length != a2.Length) return false;
24 | for (int i = 0; i < a1.Length; i++)
25 | if (a1[i] != a2[i]) return false;
26 | return true;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/PngIDatChunkOutputStream.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs {
2 |
3 | using Hjg.Pngcs.Chunks;
4 | using System;
5 | using System.Collections;
6 | using System.Collections.Generic;
7 | using System.ComponentModel;
8 | using System.IO;
9 | using System.Runtime.CompilerServices;
10 |
11 | ///
12 | /// outputs the stream for IDAT chunk , fragmented at fixed size (32k default).
13 | ///
14 | ///
15 | internal class PngIDatChunkOutputStream : ProgressiveOutputStream {
16 | private const int SIZE_DEFAULT = 32768;// 32k
17 | private readonly Stream outputStream;
18 |
19 | public PngIDatChunkOutputStream(Stream outputStream_0)
20 | : this(outputStream_0, SIZE_DEFAULT) {
21 |
22 | }
23 |
24 | public PngIDatChunkOutputStream(Stream outputStream_0, int size)
25 | : base(size > 8 ? size : SIZE_DEFAULT) {
26 | this.outputStream = outputStream_0;
27 | }
28 |
29 | protected override void FlushBuffer(byte[] b, int len) {
30 | ChunkRaw c = new ChunkRaw(len, Hjg.Pngcs.Chunks.ChunkHelper.b_IDAT, false);
31 | c.Data = b;
32 | c.WriteChunk(outputStream);
33 | }
34 |
35 | public override void Close() {
36 | // closing the IDAT stream only flushes it, it does not close the underlying stream
37 | Flush();
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/PngjBadCrcException.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs {
2 |
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.ComponentModel;
7 | using System.IO;
8 | using System.Runtime.CompilerServices;
9 |
10 | ///
11 | /// Exception for CRC check
12 | ///
13 | [Serializable]
14 | public class PngjBadCrcException : PngjException {
15 | private const long serialVersionUID = 1L;
16 |
17 | public PngjBadCrcException(String message, Exception cause)
18 | : base(message, cause) {
19 | }
20 |
21 | public PngjBadCrcException(String message)
22 | : base(message) {
23 | }
24 |
25 | public PngjBadCrcException(Exception cause)
26 | : base(cause) {
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/PngjException.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs {
2 |
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.ComponentModel;
7 | using System.IO;
8 | using System.Runtime.CompilerServices;
9 |
10 | ///
11 | /// Gral exception class for PNGCS library
12 | ///
13 | [Serializable]
14 | public class PngjException : Exception {
15 | private const long serialVersionUID = 1L;
16 |
17 | public PngjException(String message, Exception cause)
18 | : base(message, cause) {
19 | }
20 |
21 | public PngjException(String message)
22 | : base(message) {
23 | }
24 |
25 | public PngjException(Exception cause)
26 | : base(cause.Message, cause) {
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/PngjExceptionInternal.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs {
2 |
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.ComponentModel;
7 | using System.IO;
8 | using System.Runtime.CompilerServices;
9 |
10 | ///
11 | /// Exception for internal problems
12 | ///
13 | [Serializable]
14 | public class PngjExceptionInternal : Exception {
15 | private const long serialVersionUID = 1L;
16 |
17 | public PngjExceptionInternal()
18 | : base() {
19 | }
20 |
21 | public PngjExceptionInternal(String message, Exception cause)
22 | : base(message, cause) {
23 | }
24 |
25 | public PngjExceptionInternal(String message)
26 | : base(message) {
27 | }
28 |
29 | public PngjExceptionInternal(Exception cause)
30 | : base(cause.Message, cause) {
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/PngjInputException.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs {
2 |
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.ComponentModel;
7 | using System.IO;
8 | using System.Runtime.CompilerServices;
9 |
10 | ///
11 | /// Exception associated with input (reading) operations
12 | ///
13 | [Serializable]
14 | public class PngjInputException : PngjException {
15 | private const long serialVersionUID = 1L;
16 |
17 | public PngjInputException(String message, Exception cause)
18 | : base(message, cause) {
19 | }
20 |
21 | public PngjInputException(String message)
22 | : base(message) {
23 | }
24 |
25 | public PngjInputException(Exception cause)
26 | : base(cause) {
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/PngjOutputException.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs {
2 |
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.ComponentModel;
7 | using System.IO;
8 | using System.Runtime.CompilerServices;
9 |
10 | ///
11 | /// Exception associated with input (reading) operations
12 | ///
13 | [Serializable]
14 | public class PngjOutputException : PngjException {
15 | private const long serialVersionUID = 1L;
16 |
17 | public PngjOutputException(String message, Exception cause)
18 | : base(message, cause) {
19 | }
20 |
21 | public PngjOutputException(String message)
22 | : base(message) {
23 | }
24 |
25 | public PngjOutputException(Exception cause)
26 | : base(cause) {
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/PngjUnsupportedException.cs:
--------------------------------------------------------------------------------
1 | namespace Hjg.Pngcs {
2 |
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.ComponentModel;
7 | using System.IO;
8 | using System.Runtime.CompilerServices;
9 |
10 | ///
11 | /// Exception for unsupported operation or feature
12 | ///
13 | [Serializable]
14 | public class PngjUnsupportedException : Exception {
15 | private const long serialVersionUID = 1L;
16 |
17 | public PngjUnsupportedException()
18 | : base() {
19 | }
20 |
21 | public PngjUnsupportedException(String message, Exception cause)
22 | : base(message, cause) {
23 | }
24 |
25 | public PngjUnsupportedException(String message)
26 | : base(message) {
27 | }
28 |
29 | public PngjUnsupportedException(Exception cause)
30 | : base(cause.Message, cause) {
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Hjg.Pngcs")]
9 | [assembly: AssemblyDescription("PNGCS: A library for read-write PNG images")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("http://hjg.com.ar/")]
12 | [assembly: AssemblyProduct("Hjg.Pngcs")]
13 | [assembly: AssemblyCopyright("Copyright © 2012")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("57660689-c667-4a9e-9b21-ef4e21754425")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.1.4.1")]
36 | [assembly: AssemblyFileVersion("1.1.4.1")]
37 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Zlib/AZlibInputStream.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.IO;
5 |
6 | namespace Hjg.Pngcs.Zlib {
7 |
8 | public abstract class AZlibInputStream : Stream {
9 | readonly protected Stream rawStream;
10 | readonly protected bool leaveOpen;
11 |
12 | public AZlibInputStream(Stream st, bool leaveOpen) {
13 | rawStream = st;
14 | this.leaveOpen = leaveOpen;
15 | }
16 |
17 | public override bool CanRead {
18 | get { return true; }
19 | }
20 |
21 | public override bool CanWrite {
22 | get { return false; }
23 | }
24 |
25 | public override void SetLength(long value) {
26 | throw new NotImplementedException();
27 | }
28 |
29 |
30 | public override bool CanSeek {
31 | get { return false; }
32 | }
33 |
34 | public override long Seek(long offset, SeekOrigin origin) {
35 | throw new NotImplementedException();
36 | }
37 |
38 | public override long Position {
39 | get {
40 | throw new NotImplementedException();
41 | }
42 | set {
43 | throw new NotImplementedException();
44 | }
45 | }
46 |
47 | public override long Length {
48 | get { throw new NotImplementedException(); }
49 | }
50 |
51 |
52 | public override void Write(byte[] buffer, int offset, int count) {
53 | throw new NotImplementedException();
54 | }
55 |
56 | public override bool CanTimeout {
57 | get {
58 | return false;
59 | }
60 | }
61 |
62 | ///
63 | /// mainly for debugging
64 | ///
65 | ///
66 | public abstract String getImplementationId();
67 | }
68 | }
69 |
70 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Zlib/AZlibOutputStream.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Text;
5 |
6 | namespace Hjg.Pngcs.Zlib {
7 |
8 | public abstract class AZlibOutputStream : Stream {
9 | readonly protected Stream rawStream;
10 | readonly protected bool leaveOpen;
11 | protected int compressLevel;
12 | protected EDeflateCompressStrategy strategy;
13 |
14 | public AZlibOutputStream(Stream st, int compressLevel, EDeflateCompressStrategy strat, bool leaveOpen) {
15 | rawStream = st;
16 | this.leaveOpen = leaveOpen;
17 | this.strategy = strat;
18 | this.compressLevel = compressLevel;
19 | }
20 |
21 | public override void SetLength(long value) {
22 | throw new NotImplementedException();
23 | }
24 |
25 |
26 | public override bool CanSeek {
27 | get { return false; }
28 | }
29 |
30 | public override long Seek(long offset, SeekOrigin origin) {
31 | throw new NotImplementedException();
32 | }
33 |
34 | public override long Position {
35 | get {
36 | throw new NotImplementedException();
37 | }
38 | set {
39 | throw new NotImplementedException();
40 | }
41 | }
42 |
43 | public override long Length {
44 | get { throw new NotImplementedException(); }
45 | }
46 |
47 |
48 | public override int Read(byte[] buffer, int offset, int count) {
49 | throw new NotImplementedException();
50 | }
51 |
52 | public override bool CanRead {
53 | get { return false; }
54 | }
55 |
56 | public override bool CanWrite {
57 | get { return true; }
58 | }
59 |
60 | public override bool CanTimeout {
61 | get {
62 | return false;
63 | }
64 | }
65 |
66 | ///
67 | /// mainly for debugging
68 | ///
69 | ///
70 | public abstract String getImplementationId();
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Zlib/Adler32.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Hjg.Pngcs.Zlib {
6 |
7 | public class Adler32 {
8 | private UInt32 a = 1;
9 | private UInt32 b = 0;
10 | private const int _base = 65521; /* largest prime smaller than 65536 */
11 | private const int _nmax = 5550;
12 | private int pend = 0; // how many bytes have I read witouth computing modulus
13 |
14 |
15 | public void Update(byte data) {
16 | if (pend >= _nmax) updateModulus();
17 | a += data;
18 | b += a;
19 | pend++;
20 | }
21 |
22 | public void Update(byte[] data) {
23 | Update(data, 0, data.Length);
24 | }
25 |
26 | public void Update(byte[] data, int offset, int length) {
27 | int nextJToComputeModulus = _nmax - pend;
28 | for (int j = 0; j < length; j++) {
29 | if (j == nextJToComputeModulus) {
30 | updateModulus();
31 | nextJToComputeModulus = j + _nmax;
32 | }
33 | unchecked {
34 | a += data[j + offset];
35 | }
36 | b += a;
37 | pend++;
38 | }
39 | }
40 |
41 | public void Reset() {
42 | a = 1;
43 | b = 0;
44 | pend = 0;
45 | }
46 |
47 | private void updateModulus() {
48 | a %= _base;
49 | b %= _base;
50 | pend = 0;
51 | }
52 |
53 | public UInt32 GetValue() {
54 | if (pend > 0) updateModulus();
55 | return (b << 16) | a;
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Zlib/DeflateCompressLevel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Hjg.Pngcs.Zlib {
6 | // DEFLATE compression levels 0-9
7 | public class DeflateCompressLevel {
8 | public const int NO_COMPRESSION = 0;
9 | public const int FASTEST = 3;
10 | public const int DEFAULT = 6;
11 | public const int OPTIMAL = 9;
12 | }
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Zlib/EDeflateCompressStrategy.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Hjg.Pngcs.Zlib {
6 | // DEFLATE compression strategy
7 | public enum EDeflateCompressStrategy {
8 | Filtered,
9 | Huffman,
10 | Default
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Zlib/ZlibInputStreamIs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.IO;
5 | using System.IO.Compression;
6 |
7 | #if SHARPZIPLIB
8 |
9 | using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
10 | // ONLY IF SHARPZIPLIB IS AVAILABLE
11 |
12 | namespace Hjg.Pngcs.Zlib {
13 |
14 |
15 | ///
16 | /// Zip input (inflater) based on ShaprZipLib
17 | ///
18 | class ZlibInputStreamIs : AZlibInputStream {
19 |
20 | private InflaterInputStream ist;
21 |
22 | public ZlibInputStreamIs(Stream st, bool leaveOpen)
23 | : base(st, leaveOpen) {
24 | ist = new InflaterInputStream(st);
25 | ist.IsStreamOwner = !leaveOpen;
26 | }
27 |
28 | public override int Read(byte[] array, int offset, int count) {
29 | return ist.Read(array, offset, count);
30 | }
31 |
32 | public override int ReadByte() {
33 | return ist.ReadByte();
34 | }
35 |
36 | public override void Close() {
37 | ist.Close();
38 | }
39 |
40 |
41 | public override void Flush() {
42 | ist.Flush();
43 | }
44 |
45 | public override String getImplementationId() {
46 | return "Zlib inflater: SharpZipLib";
47 | }
48 | }
49 | }
50 |
51 | #endif
52 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Zlib/ZlibOutputStreamIs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.IO;
5 | using System.IO.Compression;
6 |
7 | #if SHARPZIPLIB
8 | using ICSharpCode.SharpZipLib.Zip.Compression;
9 | using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
10 | // ONLY IF SHARPZIPLIB IS AVAILABLE
11 |
12 | namespace Hjg.Pngcs.Zlib {
13 |
14 |
15 | ///
16 | /// Zlib output (deflater) based on ShaprZipLib
17 | ///
18 | class ZlibOutputStreamIs : AZlibOutputStream {
19 |
20 | private DeflaterOutputStream ost;
21 | private Deflater deflater;
22 | public ZlibOutputStreamIs(Stream st, int compressLevel, EDeflateCompressStrategy strat, bool leaveOpen)
23 | : base(st,compressLevel,strat,leaveOpen) {
24 | deflater=new Deflater(compressLevel);
25 | setStrat(strat);
26 | ost = new DeflaterOutputStream(st, deflater);
27 | ost.IsStreamOwner = !leaveOpen;
28 | }
29 |
30 | public void setStrat(EDeflateCompressStrategy strat) {
31 | if (strat == EDeflateCompressStrategy.Filtered)
32 | deflater.SetStrategy(DeflateStrategy.Filtered);
33 | else if (strat == EDeflateCompressStrategy.Huffman)
34 | deflater.SetStrategy(DeflateStrategy.HuffmanOnly);
35 | else deflater.SetStrategy(DeflateStrategy.Default);
36 | }
37 |
38 | public override void Write(byte[] buffer, int offset, int count) {
39 | ost.Write(buffer, offset, count);
40 | }
41 |
42 | public override void WriteByte(byte value) {
43 | ost.WriteByte(value);
44 | }
45 |
46 |
47 | public override void Close() {
48 | ost.Close();
49 | }
50 |
51 |
52 | public override void Flush() {
53 | ost.Flush();
54 | }
55 |
56 | public override String getImplementationId() {
57 | return "Zlib deflater: SharpZipLib";
58 | }
59 | }
60 | }
61 |
62 | #endif
63 |
--------------------------------------------------------------------------------
/pngcs-master/Hjg.Pngcs/Zlib/ZlibStreamFactory.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Text;
5 |
6 | namespace Hjg.Pngcs.Zlib {
7 |
8 |
9 | public class ZlibStreamFactory {
10 | public static AZlibInputStream createZlibInputStream(Stream st, bool leaveOpen) {
11 | #if NET45
12 | return new ZlibInputStreamMs(st,leaveOpen);
13 | #endif
14 | #if SHARPZIPLIB
15 | return new ZlibInputStreamIs(st, leaveOpen);
16 | #endif
17 | }
18 |
19 | public static AZlibInputStream createZlibInputStream(Stream st) {
20 | return createZlibInputStream(st, false);
21 | }
22 |
23 | public static AZlibOutputStream createZlibOutputStream(Stream st, int compressLevel, EDeflateCompressStrategy strat, bool leaveOpen) {
24 | #if NET45
25 | return new ZlibOutputStreamMs( st, compressLevel,strat, leaveOpen);
26 | #endif
27 | #if SHARPZIPLIB
28 | return new ZlibOutputStreamIs(st, compressLevel, strat, leaveOpen);
29 | #endif
30 | }
31 |
32 | public static AZlibOutputStream createZlibOutputStream(Stream st) {
33 | return createZlibOutputStream(st, false);
34 | }
35 |
36 | public static AZlibOutputStream createZlibOutputStream(Stream st, bool leaveOpen) {
37 | return createZlibOutputStream(st, DeflateCompressLevel.DEFAULT, EDeflateCompressStrategy.Default, leaveOpen);
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/pngcs-master/ICSharpCode.SharpZipLib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/ICSharpCode.SharpZipLib.dll
--------------------------------------------------------------------------------
/pngcs-master/LICENSE.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/LICENSE.txt
--------------------------------------------------------------------------------
/pngcs-master/README.md:
--------------------------------------------------------------------------------
1 | PNGCS
2 | =======
3 |
4 | A small library to read/write huge PNG files in C#
5 | --------
6 |
7 | PngCs is a C# library to read/write PNG images.
8 |
9 | It provides a simple API for progressive (sequential line-oriented) reading and writing.
10 | It's especially suitable for huge images, which one does not want to load fully in memory.
11 |
12 | It supports all PNG spec color models and bitdepths: RGB8/RGB16/RGBA8/RGBA16, G8/4/2/1,
13 | GA8/4/2/1, PAL8/4/2/1, all filters/compressions settings. It does not support interlaced images.
14 | It also has support for Chunks (metadata).
15 |
16 | This is a port of the [PngJ Java library](http://code.google.com/p/pngj/).
17 | The [API, documentation and samples from PNGJ](http://code.google.com/p/pngj/wiki/Overview)
18 | also apply to this PngCs library.
19 |
20 | The distribution of this library includes documentation in folder `docs/`; this
21 | is also available on [Github Pages](http://tommyettinger.github.io/pngcs/).
22 |
23 | See also the included sample projects, in folder `SamplesTests/`.
24 |
25 | RELEASES
26 | --------
27 |
28 | NOTE: Since version 1.1.4 two assemblies are provided for different environments:
29 |
30 | 1 For .Net 4.5 : `dotnet45/Pngcs45.dll`
31 | This uses an internal Zlib implementation based on the new .Net 4.5 DeflateStream
32 |
33 | Advantages:
34 | * Single dll, does not requires SharpZipLib dll
35 | * Better speed
36 |
37 | 2 .Net 2.0 compatible: `dotnet20/Pngcs.dll`
38 | This requires an extra dll (included) `ICSharpCode.SharpZipLib.dll`
39 |
40 | Advantages:
41 | * Works with old .net versions (2.0 and above)
42 | * Slightly better compression
43 |
44 | LICENSING
45 | ---------
46 |
47 | The `ICSharpCode.SharpZipLib.dll` assembly, provided with this library,
48 | must be referenced together with `Pngcs.dll` by client projects.
49 | Because SharpZipLib is released under the GPL license with an exception
50 | that allows to link it with independent modules, PNGCS relies on that
51 | exception and is released under the Apache license. See `LICENSE.txt`.
52 |
53 | HISTORY
54 | -------
55 |
56 | See changes.txt in this folder.
57 |
58 | Hernan J Gonzalez - hgonzalez@gmail.com - http://stackoverflow.com/users/277304/leonbloy
59 |
60 | Tommy Ettinger - https://github.com/tommyettinger/
61 |
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/NullOutputStream.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace SamplesTests {
6 | public class NullOutputStream : System.IO.MemoryStream {
7 | private int cont = 0;
8 |
9 | public void Write(int arg0) {
10 | // nothing!
11 | cont++;
12 | }
13 |
14 | public override void Write(byte[] b, int off, int len) {
15 | cont += len;
16 | }
17 |
18 | public override void WriteByte(byte b) {
19 | cont++;
20 | }
21 |
22 | public int getCont() {
23 | return cont;
24 | }
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("SamplesTests")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("SamplesTests")]
13 | [assembly: AssemblyCopyright("Copyright © 2012")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("12be15d3-4833-40d1-8047-8676f29a884c")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/SampleConvertToTrueCol.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using Hjg.Pngcs;
5 | using Hjg.Pngcs.Chunks;
6 |
7 | namespace SamplesTests {
8 |
9 | class SampleConvertToTrueCol {
10 |
11 | public static void doit(String orig) {
12 | string copy= TestsHelper.addSuffixToName(orig, "_tc");
13 |
14 | PngReader pngr = FileHelper.CreatePngReader(orig);
15 | if (!pngr.ImgInfo.Indexed)
16 | throw new Exception("Not indexed image");
17 | PngChunkPLTE plte = pngr.GetMetadata().GetPLTE();
18 | PngChunkTRNS trns = pngr.GetMetadata().GetTRNS(); // transparency metadata, can be null
19 | bool alpha = trns != null;
20 | ImageInfo im2 = new ImageInfo(pngr.ImgInfo.Cols, pngr.ImgInfo.Rows, 8, alpha);
21 | PngWriter pngw = FileHelper.CreatePngWriter(copy, im2, true);
22 | pngw.CopyChunksFirst(pngr, ChunkCopyBehaviour.COPY_ALL_SAFE);
23 | int[] buf = null;
24 | for (int row = 0; row < pngr.ImgInfo.Rows; row++) {
25 | ImageLine line = pngr.ReadRowInt(row);
26 | buf = ImageLineHelper.Palette2rgb(line, plte, trns, buf);
27 | pngw.WriteRowInt(buf, row);
28 | }
29 | pngw.CopyChunksLast(pngr, ChunkCopyBehaviour.COPY_ALL_SAFE);
30 | pngr.End();
31 | pngw.End();
32 | Console.WriteLine("True color: " + copy);
33 | }
34 |
35 |
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/SampleCreateOrange.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.IO;
5 | using Hjg.Pngcs;
6 | using Hjg.Pngcs.Chunks;
7 |
8 | namespace SamplesTests {
9 | ///
10 | /// Example: Creates an orage/pink gradient image
11 | ///
12 | /// This also shows how to add some metadata (chunks)
13 | ///
14 | /// To examine them: http://entropymine.com/jason/tweakpng/
15 | ///
16 | class SampleCreateOrange {
17 |
18 | public static void Create(string filename, int cols, int rows) {
19 | ImageInfo imi = new ImageInfo(cols, rows, 8, false); // 8 bits per channel, no alpha
20 | // open image for writing
21 | PngWriter png = FileHelper.CreatePngWriter(filename, imi, true);
22 | // add some optional metadata (chunks)
23 | png.GetMetadata().SetDpi(100.0);
24 | png.GetMetadata().SetTimeNow(0); // 0 seconds fron now = now
25 | png.GetMetadata().SetText(PngChunkTextVar.KEY_Title, "Just a text image");
26 | PngChunk chunk = png.GetMetadata().SetText("my key", "my text .. bla bla");
27 | chunk.Priority = true; // this chunk will be written as soon as possible
28 | ImageLine iline = new ImageLine(imi);
29 | for (int col = 0; col < imi.Cols; col++) { // this line will be written to all rows
30 | int r = 255;
31 | int g = 127;
32 | int b = 255 * col / imi.Cols;
33 | ImageLineHelper.SetPixel(iline , col, r, g, b); // orange-ish gradient
34 | }
35 | for (int row = 0; row < png.ImgInfo.Rows; row++) {
36 | png.WriteRow(iline, row);
37 | }
38 | png.End();
39 |
40 | }
41 |
42 |
43 | public static PngChunkTextVar chunk { get; set; }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/SampleDecreaseRed.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using Hjg.Pngcs;
5 | using Hjg.Pngcs.Chunks;
6 |
7 | namespace SamplesTests {
8 |
9 | class SampleDecreaseRed {
10 |
11 | public static void DecreaseRed(String origFilename, String destFilename) {
12 | if (origFilename.Equals(destFilename)) throw new PngjException("input and output file cannot coincide");
13 | PngReader pngr = FileHelper.CreatePngReader(origFilename);
14 | PngWriter pngw = FileHelper.CreatePngWriter(destFilename, pngr.ImgInfo, true);
15 | Console.WriteLine(pngr.ToString());
16 | int chunkBehav = ChunkCopyBehaviour.COPY_ALL_SAFE; // copy all 'safe' chunks
17 | // this can copy some metadata from reader
18 | pngw.CopyChunksFirst(pngr, chunkBehav);
19 | int channels = pngr.ImgInfo.Channels;
20 | if (channels < 3)
21 | throw new Exception("This method is for RGB/RGBA images");
22 | for (int row = 0; row < pngr.ImgInfo.Rows; row++) {
23 | ImageLine l1 = pngr.ReadRow(row);
24 | for (int j = 0; j < pngr.ImgInfo.Cols; j++)
25 | l1.Scanline[j * channels] /= 2;
26 | pngw.WriteRow(l1, row);
27 | }
28 | // just in case some new metadata has been read after the image
29 | pngw.CopyChunksLast(pngr, chunkBehav);
30 | pngw.End();
31 | }
32 |
33 |
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/SampleMirrorImage.cs:
--------------------------------------------------------------------------------
1 | namespace SampleTests {
2 |
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.ComponentModel;
7 | using System.IO;
8 | using System.Runtime.CompilerServices;
9 | using Hjg.Pngcs;
10 | using Hjg.Pngcs.Chunks;
11 |
12 |
13 | public class SampleMirrorImage {
14 |
15 | public static void mirror(String orig, String dest) {
16 | if (orig.Equals(dest)) throw new PngjException("input and output file cannot coincide");
17 |
18 | PngReader pngr = FileHelper.CreatePngReader(orig);
19 | PngWriter pngw = FileHelper.CreatePngWriter(dest, pngr.ImgInfo, true);
20 | pngr.SetUnpackedMode(true); // we dont want to do the unpacking ourselves, we want a sample per array element
21 | pngw.SetUseUnPackedMode(true); // not really necesary here, as we pass the ImageLine, but anyway...
22 | pngw.CopyChunksFirst(pngr, ChunkCopyBehaviour.COPY_ALL_SAFE);
23 | for (int row = 0; row < pngr.ImgInfo.Rows; row++) {
24 | ImageLine l1 = pngr.ReadRowInt(row);
25 | mirrorLineInt(pngr.ImgInfo, l1.Scanline);
26 | pngw.WriteRow(l1, row);
27 | }
28 | pngw.CopyChunksLast(pngr, ChunkCopyBehaviour.COPY_ALL_SAFE);
29 | pngw.End();
30 | }
31 |
32 | private static void mirrorLineInt(ImageInfo imgInfo, int[] line) { // unpacked line
33 | int channels = imgInfo.Channels;
34 | for (int c1 = 0, c2 = imgInfo.Cols - 1; c1 < c2; c1++, c2--) { // swap pixels (not samples!)
35 | for (int i = 0; i < channels; i++) {
36 | int aux = line[c1 * channels + i];
37 | line[c1 * channels + i] = line[c2 * channels + i];
38 | line[c2 * channels + i] = aux;
39 | }
40 | }
41 | }
42 |
43 |
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/SampleShowChunks.cs:
--------------------------------------------------------------------------------
1 | namespace SamplesTests {
2 |
3 | using System;
4 | using System.Collections;
5 | using System.Collections.Generic;
6 | using System.ComponentModel;
7 | using System.IO;
8 | using System.Runtime.CompilerServices;
9 | using Hjg.Pngcs;
10 | using Hjg.Pngcs.Chunks;
11 |
12 | /**
13 | * prints all chunks (remember that IDAT is shown as only one pseudo zero-length chunk)
14 | */
15 | public class SampleShowChunks {
16 |
17 | public static void showChunks(String file) {
18 | PngReader pngr = FileHelper.CreatePngReader(file);
19 | pngr.MaxTotalBytesRead = 1024 * 1024 * 1024L * 3; // 3Gb!
20 | pngr.ReadSkippingAllRows();
21 | Console.Out.WriteLine(pngr.ToString());
22 | Console.Out.WriteLine(pngr.GetChunksList().ToStringFull());
23 | }
24 |
25 |
26 | }
27 | }
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/PngSuite.LICENSE:
--------------------------------------------------------------------------------
1 | PngSuite
2 | --------
3 |
4 | Permission to use, copy, modify and distribute these images for any
5 | purpose and without fee is hereby granted.
6 |
7 |
8 | (c) Willem van Schaik, 1996, 2011
9 |
10 |
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/PngSuite.README:
--------------------------------------------------------------------------------
1 | PNGSUITE
2 | ----------------
3 |
4 | testset for PNG-(de)coders
5 | created by Willem van Schaik
6 | ------------------------------------
7 |
8 | This is a collection of graphics images created to test the png applications
9 | like viewers, converters and editors. All (as far as that is possible)
10 | formats supported by the PNG standard are represented.
11 |
12 | The suite consists of the following files:
13 |
14 | - PngSuite.README - this file
15 | - PngSuite.LICENSE - the PngSuite is freeware
16 | - PngSuite.png - image with PngSuite logo
17 | - PngSuite.tgz - archive of all PNG testfiles
18 | - PngSuite.zip - same in .zip format for PCs
19 |
20 |
21 | --------
22 | (c) Willem van Schaik
23 | willem@schaik.com
24 | Calgary, April 2011
25 |
26 |
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/PngSuite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/PngSuite.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi0g01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi0g01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi0g02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi0g02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi3p01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi3p01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi4a08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi4a08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi4a16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi4a16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi6a08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi6a08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basi6a16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basi6a16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn0g01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn0g01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn0g02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn0g02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn3p01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn3p01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn4a08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn4a08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn4a16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn4a16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn6a08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn6a08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/basn6a16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/basn6a16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/bgai4a08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/bgai4a08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/bgai4a16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/bgai4a16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/bgan6a08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/bgan6a08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/bgan6a16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/bgan6a16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/bgbn4a08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/bgbn4a08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/bggn4a16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/bggn4a16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/bgwn6a08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/bgwn6a08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/bgyn6a16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/bgyn6a16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ccwn2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ccwn2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ccwn3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ccwn3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cdfn2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cdfn2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cdhn2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cdhn2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cdsn2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cdsn2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cdun2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cdun2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ch1n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ch1n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ch2n3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ch2n3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cm0n0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cm0n0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cm7n0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cm7n0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cm9n0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cm9n0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cs3n2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cs3n2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cs3n3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cs3n3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cs5n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cs5n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cs5n3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cs5n3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cs8n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cs8n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cs8n3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cs8n3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ct0n0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ct0n0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ct1n0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ct1n0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cten0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cten0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ctfn0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ctfn0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ctgn0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ctgn0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/cthn0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/cthn0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ctjn0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ctjn0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ctzn0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ctzn0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/exif2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/exif2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/f00n0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/f00n0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/f00n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/f00n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/f01n0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/f01n0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/f01n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/f01n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/f02n0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/f02n0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/f02n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/f02n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/f03n0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/f03n0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/f03n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/f03n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/f04n0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/f04n0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/f04n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/f04n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/f99n0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/f99n0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g03n0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g03n0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g03n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g03n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g03n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g03n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g04n0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g04n0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g04n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g04n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g04n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g04n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g05n0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g05n0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g05n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g05n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g05n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g05n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g07n0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g07n0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g07n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g07n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g07n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g07n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g10n0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g10n0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g10n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g10n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g10n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g10n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g25n0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g25n0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g25n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g25n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/g25n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/g25n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/oi1n0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/oi1n0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/oi1n2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/oi1n2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/oi2n0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/oi2n0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/oi2n2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/oi2n2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/oi4n0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/oi4n0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/oi4n2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/oi4n2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/oi9n0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/oi9n0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/oi9n2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/oi9n2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/pp0n2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/pp0n2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/pp0n6a08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/pp0n6a08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ps1n0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ps1n0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ps1n2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ps1n2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ps2n0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ps2n0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/ps2n2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/ps2n2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s01i3p01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s01i3p01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s01n3p01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s01n3p01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s02i3p01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s02i3p01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s02n3p01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s02n3p01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s03i3p01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s03i3p01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s03n3p01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s03n3p01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s04i3p01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s04i3p01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s04n3p01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s04n3p01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s05i3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s05i3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s05n3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s05n3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s06i3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s06i3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s06n3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s06n3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s07i3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s07i3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s07n3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s07n3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s08i3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s08i3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s08n3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s08n3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s09i3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s09i3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s09n3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s09n3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s32i3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s32i3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s32n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s32n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s33i3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s33i3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s33n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s33n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s34i3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s34i3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s34n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s34n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s35i3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s35i3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s35n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s35n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s36i3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s36i3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s36n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s36n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s37i3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s37i3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s37n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s37n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s38i3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s38i3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s38n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s38n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s39i3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s39i3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s39n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s39n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s40i3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s40i3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/s40n3p04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/s40n3p04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tbbn0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tbbn0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tbbn2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tbbn2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tbbn3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tbbn3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tbgn2c16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tbgn2c16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tbgn3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tbgn3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tbrn2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tbrn2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tbwn0g16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tbwn0g16.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tbwn3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tbwn3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tbyn3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tbyn3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tm3n3p02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tm3n3p02.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tp0n0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tp0n0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tp0n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tp0n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tp0n3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tp0n3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/tp1n3p08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/tp1n3p08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xc1n0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xc1n0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xc9n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xc9n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xcrn0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xcrn0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xcsn0g01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xcsn0g01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xd0n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xd0n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xd3n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xd3n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xd9n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xd9n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xdtn0g01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xdtn0g01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xhdn0g08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xhdn0g08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xlfn0g04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xlfn0g04.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xs1n0g01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xs1n0g01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xs2n0g01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xs2n0g01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xs4n0g01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xs4n0g01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/xs7n0g01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/xs7n0g01.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/z00n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/z00n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/z03n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/z03n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/z06n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/z06n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/SamplesTests/testsuite1/z09n2c08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/SamplesTests/testsuite1/z09n2c08.png
--------------------------------------------------------------------------------
/pngcs-master/dist/build_dist.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Build distribution (ready for zip) in directory pngcs_nnn below the script dir.
4 | # The directory shuld not exist
5 | # This script dir should be located in inside the main solution
6 | # (eg c:\Users\h\Documents\Visual Studio 2010\Projects\pngcs\dist\build_dist.sh )
7 |
8 | # http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
9 | DIRS="$( cd "$( dirname "$0" )" && pwd )"
10 | # no spaces!
11 | DIRNEW="/C/temp/pngcs_nnn"
12 |
13 | if [ -d "$DIRNEW" ]; then
14 | echo "Directory $DIRNEW already exists. Please remove it".
15 | exit 1
16 | fi
17 | mkdir "$DIRNEW"
18 | mkdir "$DIRNEW/src"
19 | if [ -d "$DIRNEW" ]; then
20 | echo "dir $DIRNEW created"
21 | else
22 | echo "??"
23 | exit
24 | fi
25 |
26 | cd "$DIRS"
27 | cp -r ../* $DIRNEW/src/
28 | cd $DIRNEW
29 |
30 | mkdir dotnet20
31 | mkdir dotnet45
32 |
33 | mv src/Hjg.Pngcs/bin/Release/Pngcs.dll dotnet20/
34 | mv src/Hjg.Pngcs/bin/Release45/Pngcs.dll dotnet45/Pngcs45.dll
35 | cp src/*.txt .
36 | mv src/*.dll dotnet20
37 | mv src/docs .
38 |
39 | find . -name bin -type d -exec /bin/rm -rf '{}' \;
40 | find . -name obj -type d -exec /bin/rm -rf '{}' \;
41 | find . -name '*.zip' -exec /bin/rm -f '{}' \;
42 | find . -name '*.sh' -exec /bin/rm -f '{}' \;
43 | /bin/rm -f src/pngcs.suo
44 | /bin/rm -rf src/dist/
45 |
46 | cd "$DIRS"
47 |
48 | echo "Did you updated you version number?"
49 |
50 | pwd
51 |
52 | grep AssemblyVersion ../Hjg.Pngcs/Properties/AssemblyInfo.cs | grep -v '^/'
53 |
54 | echo "Output in $DIRNEW. Rename the directory with your version number and zip it"
55 |
56 |
--------------------------------------------------------------------------------
/pngcs-master/dist/readme.txt:
--------------------------------------------------------------------------------
1 | To generate doc with doxygen:
2 |
3 | - Remove (or move) c:\Users\h\Documents\Visual Studio 2010\Projects\pngcs\docs\html\
4 | - Open "Doxywizard"
5 | - File->open->c:\Users\h\Documents\Visual Studio 2010\Projects\pngcs\Doxyfile
6 | - Change version number
7 | - Run doxygen and check
8 |
9 |
10 | To commit to git:
11 |
12 | - Open Git Bash and do with command line.
13 |
14 | To generate distribution:
15 |
16 | - Update the assembly version
17 | - See and run (from Git Bash) buid_dist.sh
18 |
--------------------------------------------------------------------------------
/pngcs-master/docs/html/bc_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/bc_s.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/bdwn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/bdwn.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/closed.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/doxygen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/doxygen.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2blank.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2cl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2cl.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2doc.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2folderclosed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2folderclosed.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2folderopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2folderopen.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2lastnode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2lastnode.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2link.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2mlastnode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2mlastnode.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2mnode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2mnode.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2mo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2mo.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2node.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2node.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2ns.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2ns.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2plastnode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2plastnode.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2pnode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2pnode.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2splitbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2splitbar.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/ftv2vertline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/ftv2vertline.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | PngCs: Main Page
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | PngCs
20 | 1.1.4
21 |
22 | A C# library for read/write PNG images
23 | |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
36 |
37 |
41 |
42 |
43 |
44 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/pngcs-master/docs/html/nav_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/nav_f.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/nav_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/nav_g.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/nav_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/nav_h.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/open.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/sync_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/sync_off.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/sync_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/sync_on.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/tab_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/tab_a.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/tab_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/tab_b.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/tab_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/tab_h.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/tab_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/supermemo/ImageOcclusionEditor/5e0271da39761131ad72ebe32702c45ccc72b3e4/pngcs-master/docs/html/tab_s.png
--------------------------------------------------------------------------------
/pngcs-master/docs/html/tabs.css:
--------------------------------------------------------------------------------
1 | .tabs, .tabs2, .tabs3 {
2 | background-image: url('tab_b.png');
3 | width: 100%;
4 | z-index: 101;
5 | font-size: 13px;
6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
7 | }
8 |
9 | .tabs2 {
10 | font-size: 10px;
11 | }
12 | .tabs3 {
13 | font-size: 9px;
14 | }
15 |
16 | .tablist {
17 | margin: 0;
18 | padding: 0;
19 | display: table;
20 | }
21 |
22 | .tablist li {
23 | float: left;
24 | display: table-cell;
25 | background-image: url('tab_b.png');
26 | line-height: 36px;
27 | list-style: none;
28 | }
29 |
30 | .tablist a {
31 | display: block;
32 | padding: 0 20px;
33 | font-weight: bold;
34 | background-image:url('tab_s.png');
35 | background-repeat:no-repeat;
36 | background-position:right;
37 | color: #283A5D;
38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
39 | text-decoration: none;
40 | outline: none;
41 | }
42 |
43 | .tabs3 .tablist a {
44 | padding: 0 10px;
45 | }
46 |
47 | .tablist a:hover {
48 | background-image: url('tab_h.png');
49 | background-repeat:repeat-x;
50 | color: #fff;
51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
52 | text-decoration: none;
53 | }
54 |
55 | .tablist li.current a {
56 | background-image: url('tab_a.png');
57 | background-repeat:repeat-x;
58 | color: #fff;
59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
60 | }
61 |
--------------------------------------------------------------------------------