Input: The frame file path. |
Output: An EVM that is an extrusion for the input frame. |
(1) Procedure loadImage (string imagePath) |
(2) EVM // The resulting EVM. |
(3) ImageData imageData; |
(4) integer colorCount; |
(5) integer array hyperPrismBase, hyperPrismLengths; |
(6) ← InitEVM ( ); |
(7) imageData ← readImageData (imagePath); |
(8) colorCount ← imageData.colors; |
/ Initialize the hyper-prism base and lengths / |
(9) for to (colorCount − 1) do |
(10) hyperPrismBase ; |
(11) hyperPrismLengths 0; |
(12) hyperPrismLengths ; |
(13) for to (imageData.height − 1) do |
(14) hyperPrismBase ; |
(15) for to (imageData.width − 1) do |
(16) hyperPrismBase ; |
/ Get every color component for the current pixel. / |
(17) for to (colorCount − 1) do |
(18) hyperPrismLengths [] ← imageData.pixelData ().color (); |
(19) populateHyperPrism (, hyperPrismBase, 2 + colorCount, 0, hyperPrismLengths); |
(20) return |