├── .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 |
14 | SVG-edit logo
15 |

Sorry, but your browser does not support SVG. Below is a list of alternate browsers and versions that support SVG and SVG-edit (from caniuse.com).

16 |

Try the latest version of Firefox, Google Chrome, Safari, Opera or Internet Explorer.

17 |

If you are unable to install one of these and must use an old version of Internet Explorer, you can install the Google Chrome Frame plugin.

18 | 19 |
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 | 2 | 3 | 4 | 5 | Layer 1 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | Layer 1 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /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 | 24 | 25 | 26 |
19 |
PngCs 20 |  1.1.4 21 |
22 |
A C# library for read/write PNG images
23 |
27 |
28 | 29 | 30 | 36 |
37 |
38 |
39 |
PngCs Documentation
40 |
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 | --------------------------------------------------------------------------------