Skip to content

Commit

Permalink
added serialization
Browse files Browse the repository at this point in the history
* cargo clippy
  • Loading branch information
DaniD3v committed Oct 31, 2023
1 parent 3ca8434 commit fc5fac8
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 21 deletions.
5 changes: 5 additions & 0 deletions converter/examples/images/ser/incredible.bin
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
�������������������������G������������������������@�������������������������������������������������x�������������������������������������������������`������������������������x���������������������������������������������������x��������������������������������������_|�|�|�����������������������|�|�|�|����������������������g�|�|�|���������x�������������|
l�||����|�|�|����������������|`l
l`l�j|�|�|�|�|�|��|�����������|�g�l�o�o�o�|��|�|�|�|�|�|�|����������g�ol�o�o�l�l�|��|`|�|�|�|�|�|���������g�o�o�l�l�|�|�|�����|�|�l�|�|�������`g�g�g��|�|�|�|�����_|�|�x�|�|������������|�|�|�|�����_|�|�x�l�|������x�����l|�|�|�|�|`|�����|�x�l�|�����h�v����|�o^|�|�|�|�������|�|�x�|�����o���_|�g_l�_|�|�|������_|�|�x�|����|�v���|�l�l_|_|�|�|��������|�x�|��_v�l�v����`lg_|��|�l�|�������|�x�l���g'l`v����|�ox���|/d-|�������|�x�h���o_l�����g_l�o^�|�|�v��������|�x�h�_v�o�v�����g�l�x'�|�|�v��������|�x�x��g�o�v�����g�v�x`|�|�v��������|�x�x��g�o�v����^g�v��x`|�|x��������|�x�x��g�o`v�����o�l�x�|_|�|_x��������|�x�x�-|�o`|�����o�l^x�|�|�|���������|�x�x��`g�����g�o�|�||�|�|�`|�������|�x�x���l�����g�l�|�|�|�|�|�~x�������|�h�x�v�g�����g�|�|�|�|�|�|���������|�h�x�_vg����l�|�|�|�|�|�l���������|�|�x���o���,x��|�|�|�|�|�l`v-x�������|�h�x�_x�o�������|�|�|�|�|�v�x�������|�h�x���h��������|�|�|�|�v��������|�h�x���g��~|�������|�|�L��������|�h�x���g,|�`|�������|�|�d��������|�h�x���||�|`|����|�v�v�l�l�d`|�������|�h�x��g|�|���v�dfd�h�x�h�o`d�v�������|�h�x���g�l
|��|�h�x�x�x�x�x_d^h�v�������|�h�x���g�l
|��g�x�x�F�x�x�x�x�o�v�������|�h�x���l�|�|�g�x�x_`��l�g�l�h�x�������|�h�x����g�|�|�l�x�x�g_�x�|�|�x�x������|�|�h�x����l�|�l�x�x�x�|�|�|�x�x������|�|�x�x�����x�l_h�h�hl�xm|�|_|�x�l�|�|����|�l�x�x�����x�o�o`h�h�h`v�|�|��h�x�|�|�|���|�x�x�x������h�o�l_h�x�x�l�|_|�l�|�|�|�|���x�x�x�x������x�o�l�l�x�x�l�|�|�l�v�|�|�|�|`|�x�x�x�x�������h_l�|�h�|�o`|�|�|��|�x�x�|�|�x�x�x�x������_x�o�o�o�l�l�|�|�|�_|�x�x�x�x�x�x�x�x��������x�h�h�l�|�|�|�|�|��|�x�x�x�x�x�x�x����������x�x�l�x�x�x�x�x�|�x�x�x�x�x�x�x������������x�x�x�x�x�x�x�x�x�x�x�x�x�x������������x�x�x�x�x�x�x�x�x�x�x�x�x�x�����������_x�x�x�x�x�x�x�x�x�x�x�x�x�x�������������x�x�x`x��x�x�x�x�x�x�x�x��������������x�x�����x�x�x�x�x�x����������������������x�x�x�x����������������������x�x�x�x�����������������������x�x�x�����������������������x�x�x������������������������x�������������������������x��������������������������������������������������x�������������������������`��������������������������������������������������x��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
1 change: 1 addition & 0 deletions converter/examples/images/ser/oppenheimer.bin
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
�����x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x������x�x�x�x�x�x�x�x�x�x��x�x�x�x�x�x�x�x�x`�����x�x�x�x�x�x�x�x�x�x��x�x�x�x�x�x�x�x�x`����x�x�x�x�x�x�x�x�x�x�x��x�x�x�x�x�x�x�x�����_x�x�x�x�x�x�x�x�x�x�x"�x�x�x�x�x�x�x�x�������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x`�������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x��������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x����������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x����������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x����������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x���������x�x�x�x�x�x�x�x�x_�x�x�x�x�x�x^��������x�x�x�x�x�x�x�x�����x�x�x�x�x`��������x�x�x�x�x�x�x�x�x���x�x�x�x�x�x���������x�x�x�x�x�x�x�x�x�x��x�x�x�x�x�x���������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x��������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x��������x�x��x�x�x�x�x�x�x�x���x�x�x�x�x��������x�x��x�x�x�x�x�x�x�x�_�x�x�x�x�x��������x�x_�x�x�x�x�x�x�x�x�_�x�x�x�x�x��������x�x��x�x�x�x�x�x�x�x���x�x�x�x���������x�x���x�x�x�x�x�x�x`��x�x�x�x�������_x�x�x���x�x�x�x�x�x�x`��x�x�x�x��������x�x�x`_�x�x�x�x�x�x�x���x�x�x�x��������x�x�`��x�x�x�x�x�x�x���x�x�x�x��������x�x�^���x�x�x�x�x�x�x�x�x�x�x��������x�x�x�^������x�x�x�x�x�x�x�x��������x�x����������x�x�x�x�x���!����x��������x�x���x�x�x�x�x����������������x�x�����������������������x�x�x������q��x�x�x�x�x�����������x�x�x��������x�x�x�x�x�����������x�x�x�x�x�x�x����x�x��x�x����_������x�x�x�x�x�x�x�x����x���x����������x�x�x�x�x�x�x�x�x�x���x�x������,*���x�x�x�x��x�x���x�x�x�x�x�x�������������x����x�x�x�x�x�x�x�x�x`x��������������x��x�x�x�x�x�x�x�x�x�x�x���*��������x�x�x�x�x�x�x�,x�x����x�����x^���x�x�x�x��x��x�x�x��*x���x�x����x��`�x�x�x���x��x�xx���x��/x�x��������x�x�x��x�_x�x������'x,�x�����_�x�x�x`x�����x�����,x��x��._�x`��x�x��x����x������x���x`����x����x�x�_x�x��'x���������x�����x�����x^x��'x�����������x���_�x���x��x��������������x���������x�x��������p�x�x�����x����_�x��x�x�x`x������x������x�x�x�����x��x�x�x����g�x�x�x��������x�����x��x�x�x�x�x��_�x�x�x�x����x�x�����x��x�x�v��x�_�x�x�x�x�.,`�x�x�x��_�x���x��v�x��_�x�x�x�x����_�x�x�x�x���x`_�h�x�x���_�x�x�x�x������x�x�x�x�x�x�x`���x�x�����x�x�x�x�x���`�x�x�x�x�x�x�x`��x�x�x�x�x`��x�x�x�x�x���'�x�x�x�x�x�x�x^��x�x�x�x��_�x�x�x�x�x�����x�x�x�x�x�x�x���x�x�x���_�x�x�x�x�x�����x�x�x�x�x�x�x�_�x�x����_�x�x�x�x�x�x����x�x�x�x�x�x�x`��x�x������x�x�x�x�x�x�����x�x�x�x�x�x`��x�������x�x�x�x�x�x������x�x�x�x�x~�x�x�������x�x�x�x�x�x`�����x�x�x�x�x��x�x�x�������x�x�x�x�x`�����x�x�x�x�x�x�x�x�x�������x�x�x�x�x����x�x�x�x�x�x�x�x�x�x�x�x������x�x�x�x�x����x�x�x�x�x�x�x�x�x�x�x�������x�x�x�x�x����x�x�x�x�x�x�x�x�x�x�������x�x�x�x�x���x�x_x�x�x�x�x�x�x���������x�x�x�x�x�x�����x�x�x�x�x�x�x���������x�x�x�x�x�x�����x�x�x�x�x�x�x���������x�x�x�x�x�x`���x�x�x�x�x�x�x�x���������x�x�x�x�x�x���x�x�x�x�x�x�x�x�x���������x�x�x�x�x�x�x��x�x�x�x�x�x�x�x�x���������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x���������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x���������x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x`������_�x`�x�x�x�x�x�x�xx�x�x�x�x�x�x�x�������_�x��x�x�x�x�x�x�x��x�x�x�x�x�x��������_�x��x�x�x�x�x�x�x`x�x�x�x�x`�����������x��x�x�x�x�x�x
4 changes: 4 additions & 0 deletions converter/examples/images/ser/rainbow.bin
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
�|�l�l�|
l�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�|�|�l�l�l�L�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�l�|�|�l�|�L�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�l�|�|�l�|l�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�Ol�l�l�|]l�l�L�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�|�|�|�|�|�l�F�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�|�l�|�l$l�l�l`L�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�l�|�|�l�|�l�l�F�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O
l�|�|�ll�l�l�l�F�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�|�|�l�l�l�l�l^l�l�O�O�O�O�O�O�O�O�O�O�O�O�O�O�T�_�|�l�|�|~l�l�l�o\l�F�O�O�O�O�O�O�O�O�O�O�O�E�_�_�_�|�|�l�|�l�|�l�l�l�l�L�O�O�O�O�O�O�O�O�O�T�_�_�_�_�|�l�l�|�l�l�l�l�ll�l�O�O�O�O�O�O�O�O�O�_�_�_�_�_l�l�l_l ll�|�l�l(ll_d�O�O�O�O�O�O�O^T�_�_�_�_�_�l�l�l�l�l�l�ll�l�l�l`l�F�O�O�O�O�O�T�_�_�_�_�_�_�l_l�l�l�l�|fl�l�l�|_l�o�l�O�O�O�O�T�_�_�_�_�_�_�_�l�lLl�l�l�l�l�l�l�l�ll�|�L�O�O�O�_�_�_�_�_�_�_�_lll�lll�o�|�l�l�|Ll�l�l\l�O�O^T�_�_�_�_�_�_�_�_�n�n.lWl�l�l�l�l�|ll�|�l�|
l�T�_�_�_�_�_�_�_�_�_�~�~�~ll�l�|�|�l�|�|ll�l�l`\�_�_�_�_�_�_�_�_�_�~�~�~�~�l�|�|�l�l�l�l�l�|�|�|�X�_�_�_�_�_�_�_�_�_�~�~�~�~�~�|�l�l�l�|_l�ll�l�x�x�_�_�_�_�_�_�_�_�_�~�~�~�~�~�n�|�l�l�l�l�l�|�|�x�x�X�_�_�_�_�_�Q���~�~�~�~�~�~�n�l_ll�o-l�l�h�x�x�X�_�_�_�_�Q����~�~�~�~�~�~�~-l�lll�l�o�x�x�x�x�_�_�_������~�~�~�~�~�~�~`n�o�o�o�o�h�x�x�x�x`X�__Q������~�~�~�~�~�~�~�n�o�o�o�o�h�x�x�x�x�X�_`������~�~�~�~�~�~�~�~�o�o�o�o�x�x�x�x�x�X��������~�~�~�~�~�~�~�~`~�g�o�h�x�x�x�x�x�x`�������~�~�~�~�~�~�~�~`~���x�x�x�x�x�x�x��������~�~�~�~�~�~�~�~`~���x�x�x�x�x�x�x��������~�~�~�~�~�~�~�~`~��_x�x�x�x�x�x�y`�������~�~�~�~�~�~�~�~`~��_x�x�x�x�x�x�y��������~�~�~�~�~�~�~�~`~����x�x�x�x�x�y��������~�~�~�~�~�~�~�~�����x�x�x�x�y�y�y�������~�~�~�~�~�~�~�~�����x�x�x�x�y�y�y�������~�~�~�~�~�~�~�~�����x�x�x�x�y�y�y�������~�~�~�~�~�~�~�~�����x�x�x�x�y�y�y�y������~�~�~�~�~�~�~�~�����x�x�x�x�y�y�y�y������~�~�~�~�~�~�~�z�z�z��_x�x�x�x�y�y�y�y�y�����~�~�~�~�~�~�~�z�z�z����x�x�9�y�y�y�y�y�y����~�~�~�~�~�~�z�z�z�z`z���x�8�?�y�y�y�y�y�y�y���~�~�~�~�~�z�z�z�z�z�z���x�?�?�9�y�y�y�y�y�y�y�y�~�~�~�~�z�z�z�z�z�z�z���7�?�?�?�y�y�y�y�y�y�y�y�~�~�~�z�z�z�z�z�z�z�z�z��?�?�?�?�9�y�y�y�y�y�y�y�z�z�z�z�z�z�z�z�z�z�z�z�7�?�?�?�?�?�y�y�y�y�y�y�y�z�z�z�z�z�z�z�z�z�z�z�z^7�?�?�?�?�?�9�y�y�y�y�y�y�z�z�z�z�z�z�z�z�z�z�z�z`:�?�?�?�?�?�?�9�y�y�y�y�y�z�z�z�z�z�z�z�z�z�z�z�z`:�?�?�?�?�?�?�?�y�y�y�y�y�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�9�y�y�y�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�9�y�y�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�9�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�?�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�?�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�?�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�?�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�?�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�?�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�?�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�?�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�?�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�?�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�?�?�?�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�?�;�{�{�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�?�?�{�{�{�{�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?_;�{�{�{�{�{�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�;�{�{�{�{�{�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�?�{�{�{�{�{�{�z�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�;�{�{�{�{�{�{�*�z�z�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�;�{�{�{�{�{�{�/�/�*�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�{�{�{�{�{�{�{�/�/�/�z�z�z�z�z�z�z�z�z�?�?�?�?�?�?�{�{�{�{�{�{�{�/�/�/_*�z�z�z�z�z�z�z�z�?�?�?�?�?�?�{�{�{�{�{�{�{�/�/�/�/�z�z�z�z�z�z�z�z�?�?�?�?�?�;�{�{�{�{�{�{�{�/�/�/�/�*�z�z�z�z�z�z�z�?�?�?�?�?�;�{�{�{�{�{�{�{�/�/�/�/_*�z�z�z�z�z�z�z�?�?�?�?�?�;�{�{�{�{�{�{�{�/�/�/�/�/�z�z�z�z�z�z�z�?�?�?�?�?�;�{�{�{�{�{�{�{�/�/�/�/�/�*�z�z�z�z�z�z�?�?�?�?�?�;�{�{�{�{�{�{�{�/�/�/�/�/�*�z�z�z�z�z�z�?�?�?�?�?�;�{�{�{�{�{�{�{�/�/�/�/�/�*�z�z�z�z�z�z�?�?�?�?�?�;�{�{�{�{�{�{�{
7 changes: 7 additions & 0 deletions converter/examples/images/ser/sunset.bin
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
�o�o�ol�o�l�l`�o�o�o_�`��������x����o�o�o�ljl�ll@�o�o�o���\������x�x����o�o�o�l�|�|l�O�o�o�o�_`��������x`���o�o�o�ll�|l�O�o�o�o�ol_`��x^�����x`���o�o�o_l�l�|l�O�o�o�o�o�l`l�x�x�����x�x����o�o�o-l�l�|ld�o�o�o�o�o�o�h�����������o�o�o�o�|�|l�d�o�o�o�o�o_h��������x����o�o�o�o�|�|l�o�o�o�o�o�o_h�������x�x����o�o�o�o�|�|�l�o�o�o�o�o�l�o�����,�x�x�x���o�o�o�o�|�|�|�o�o�o�o�o~l�o�������x�x�x�-�o�o�o�o�|�|�|`l�o�o�o�o�o�o�h"_^���x�xj��o�o�o�o�|�|�|^l�o�o�o�o�o�o�h�xV�x^��x�x���o�o�o�o�|�n�|�l�o�o�o�o�l�o�h���x���x�x�*�o�o�o�o�l�~�|�l�o�o�o_l`l�o�h�x�x�x��x��x�x��o�o�o�o�l�~�|�l�o�o�o_l�o�o�h�x�x�x����x�x��o�o�o�o�l�~_n�n�o�o�o�l�o�o_h�x�x�x��x�x�x�x^�o�o�o�ol�n�~�n`ll�o�l�o�o�o�x�x��xux�x�x�x��o�o�o�ol�n�~�n`ll�o�l�l�o�o�h�x��x�x�x���x�ol�o�o�l�~�~�~�ll�l�|�l~l�o�h�x�x�x�x�l�x���x�o�lll�n�~�~�~�l�|�|�|�|�l�o_h�x�x�x�x�l�x���x�o�ol�l�~�~�~�~l�|�|�~�|�l�o�o�x�x�x�x�l�x���x�o�o�l�n�~�~�~�~�|�|�|�~�~�l�o�o�x�x�x�x�l�x���x�o�o�l�n�~�~�~�~�|�~�~�~�~�|�o�o�x�x�x�x�n�x���x�o�l�l�n�~�~��~�~�~�~�~�~�|�o�o�x�x�x�x�n�x���x�o�lml�~�~���~�~�~�~�~�~�n�o�o�x�x�x�x�n�x����o�ol�~�~����~�~�~�~�~�n`l�o�h�x�x�x�n�x�_��o�l�l�~�~����~����~�~�l�o�h�x�x�x�x�x�_��o�l�l�~�~����~�~����~�l�o�h�x�x�x�n�x�_��o
ll�~�~����~�~�~�~�~�~�|�o�h�x�x�x�n�x�_�o�l�~�~�~���~�~�~�~�~�~�~�|�o�h�x�x�x�n�x��__ll�~�~�~�~��~�~�~�~�~�~�~�|`l�h�x�x�x�n�x�__,l~l�~�~�~�~�~�~�~�~�~�~�~�~�|�l�o�x�x�x�n�x�__�o�l�~�~�~�~�~�~
n�~�~�~�~�~�|�l�o�x�x�x�l�x�__�o�n�~�~�~�~�~�~�n�~�~�~�~�~�|�l�o�h�x�x�l�x�__�ol_n�~�~�~�~�~�n�n�~�~�~�|�|�l�o�o�h�x�h�x�___l�l�|�~�~�~�~�~�n�|�~�~�~�|�|`l�o�h�x�x�l�x�_��ol�|�~�~�~�~�~�l�|�~�~�~�|�|�o�o�o�x�x�h�x^_��o,l�|�~�~�~�~�~�l�|�|�|�~�|�l�o�o�o�x�x�h�x�x���o�l�|�~�~�~�~�~�l�|�|�|�|�|�l�o�o�x�x�x�l�x`���o_l�|�~�~�~�~�~�l�|�|�|�|�|"l�o�o�x�x�x�h~'���o_l�|�n�~�~�~�~=l�|�|�|�|�|`l�o�o�x�x�x�h)����o�o�l�|�~�~�~�~�`�l�|�|�|�|�o�o�h�x�x�x�h�x����o�o�l�l�~�~�~�n�_l�ll�|�|�o�o�h�x�x�x�h�����o�o�|�|�n�~�~��`d�o�o�l�l�o�o�h�x�x�x�x_���o�o�l�|�n�~�~`��d�o�o�l�l�o�o�h�x��x�C��`�o�o�l�|�|�~�~`��`�o�o_l�l�o�o�x����`�.��o�o�l�|�|�~�~`��`�o�o_l�l�o�h�`�����o�o�|�|�|�~�~���`�o�o�l�l�o�h'~���=����o�o�|�|�|�~�~���`�o�o�l�l�o�^����u����o�o�|�|�|�~�~���`�o�o�l�l�o`�����.����o�o�|�|�|�|�~���`�d�o_l�l�o������_����o�o�|�|�|�|�~� ��`d�o_l�o�h`���������o�o�|�|�|�|�~���`�o�o.l�o_h������"���o�o�l�|�|�|�~l��d�ll�o�o�h������/���o�o�l�l�|�|�~�|�`dll�o�o`���������'�o�ocl�|�|�|�~�|`�o�l�l�o�o������������o�o�o�|�|�|�~�|``d�l�l�o�o������������o�o�ol�|�|�~�|�`d_l�l�o�o������������o�o�o
l�|�|�|�|�`d�o�l�o�`������������o�o�o_l�|�|�|�|�l�l�l�d`�����������o�o�o_l�|�|�|�|�d�l�l�l``�����������o�o�o�o�l�|�|�|�o�l�l_`�-�~���������o�o�o�o�l�|�|�|�o�l�l���������������o�o�o�o�l�|�|�|�o�l
l���������������o�o�o�o�l�|�|�|�o�l
l�����'�f�������o�o�o�o�l�|�|�|�o�l
l������` ��������o�o�o�o�o�|�|�|_d_l�l���������������o�o�o�o�o�|�|�|�o_l�l���������������o�o�o�o�o�|�|�|:d_l�l_d��������������o�o�o�o�o�l�|�|d_ll�o��������������o�o�o�o�o�l�|�|d�ol�o��������������o�o�o�o�o�l�|�ld�d�o�o�'�����,'�����o�o�o�o�o�l�|�l�@`�`�o!�������������o�o�o�o�o�l�|�l_�_^d`�������������o�o�o�o�o�l�|.d���`^�������������o�o�o�o�o�l�|�``�`.^�������������o�o�o�o�o�l�l�o`�~�~�������������o�o�o�o�o�l�l�``�����������������o�o�o�o�o�l�l������` ������������o�o�o�o�o�ll^�����������������
Expand Down
2 changes: 2 additions & 0 deletions converter/src/constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ pub const VGA_CHAR_HEIGHT: usize = 25;
pub const VGA_PIXEL_WIDTH: u32 = VGA_CHAR_WIDTH as u32 * CHAR_WIDTH;
pub const VGA_PIXEL_HEIGHT: u32 = VGA_CHAR_HEIGHT as u32 * CHAR_HEIGHT;

pub const VGA_WORD_SIZE: usize = VGA_CHAR_WIDTH * VGA_CHAR_HEIGHT;

pub const FOREGROUND: [[u8; 3]; 16] = [
[0, 0, 0],
[0, 0, 170],
Expand Down
29 changes: 17 additions & 12 deletions converter/src/image.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ impl Image {
VGA_PIXEL_HEIGHT,
FilterType::Triangle,
)
.into(),
})
}

Expand All @@ -33,14 +32,13 @@ impl Image {
let mut chars = [[VGAChar::uninit(); VGA_CHAR_HEIGHT]; VGA_CHAR_WIDTH];

for y in 0..VGA_CHAR_HEIGHT {
for x in 0..VGA_CHAR_WIDTH {
chars[x][y] = Chunk::new(self.image.view(
for (x, column) in chars.iter_mut().enumerate().take(VGA_CHAR_WIDTH) {
column[y] = Chunk::new(self.image.view(
x as u32 * CHAR_WIDTH,
y as u32 * CHAR_HEIGHT,
CHAR_WIDTH,
CHAR_HEIGHT,
))
.get_best_char();
)).get_best_char();
}
}

Expand Down Expand Up @@ -69,7 +67,17 @@ impl ProcessedImage {

Ok(image_buf)
}

pub fn serialize(&self) -> [u8; VGA_WORD_SIZE*2] {
unsafe { std::mem::transmute::<[u16; VGA_WORD_SIZE], _>(
self.chars.iter().flatten()
.map(VGAChar::vga_format)
.collect::<Vec<u16>>()
.try_into().unwrap()
) }
}
}

struct Chunk<'a> {
image: SubImage<&'a RgbImage>,
}
Expand All @@ -86,16 +94,13 @@ impl<'a> Chunk<'a> {
for possibility in 0..POSSIBLE_CHARS as u32 {
let difference = self.difference(possibility, min_difference);

match difference {
Some(difference) => {
min_difference = difference;
best_char = &VGACHAR_LOOKUP[possibility as usize].0;
}
None => (),
if let Some(difference) = difference {
min_difference = difference;
best_char = &VGACHAR_LOOKUP[possibility as usize].0;
}
}

best_char.clone()
*best_char
}

fn difference(&self, char: u32, stop: u32) -> Option<u32> {
Expand Down
25 changes: 16 additions & 9 deletions converter/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ pub mod image;
pub mod char;

use std::error::Error;
use std::path::PathBuf;
use std::fs::read_dir;
use std::time::Instant;
use std::fs::read_dir;
use std::path::Path;
use std::io::Write;
use std::fs;

use crate::image::Image;

Expand All @@ -17,23 +19,28 @@ pub fn main() -> Result<(), Box<dyn Error>> {
let path = file?.path();
let image = Image::new(&path)?;

println!("Processing image {:?} -> {}", path, output_path(&path));
println!("Processing image {:?} -> {}", path, dir_path(&path, "out", "png"));

let time = Instant::now();
let image = image.process_image();
println!("{:?} elapsed.", time.elapsed());

image.process_image()
image
.render()?
.save(output_path(&path))?;
.save(dir_path(&path, "out", "png"))?;

println!("{:?} elapsed.", time.elapsed());
fs::OpenOptions::new()
.write(true).create(true)
.open(dir_path(&path, "ser", "bin"))?
.write_all(&image.serialize())?;
}

Ok(())
}

fn output_path(path: &PathBuf) -> String {
fn dir_path(path: &Path, directory: &str, file_type: &str) -> String {
let images_folder = path.parent().unwrap().parent().unwrap().to_str().unwrap();
let filename = path.file_prefix().unwrap().to_str().unwrap();
let file_name = path.file_prefix().unwrap().to_str().unwrap();

format!("{}/out/{}.png", images_folder, filename)
format!("{images_folder}/{directory}/{file_name}.{file_type}").to_string()
}

0 comments on commit fc5fac8

Please sign in to comment.