Added image writing support

This commit is contained in:
Jan Christian Grünhage 2017-05-28 04:36:02 +02:00
parent 51b555464a
commit 8a28d6945a
Signed by: jcgruenhage
GPG key ID: 321A67D9EE8BC3E1
4 changed files with 335 additions and 75 deletions

View file

@ -2,10 +2,12 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="c0ed70cb-4993-460a-ac67-231f74ca4a81" name="Default" comment="">
<change type="DELETED" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/markov/markov.go" afterPath="$PROJECT_DIR$/markov/markov.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/examples/pngwriter/png.go" />
<change type="MOVED" beforePath="$PROJECT_DIR$/markov/markov.go" afterPath="$PROJECT_DIR$/examples/markov/markov.go" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pixclient.go" afterPath="$PROJECT_DIR$/pixclient.go" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -18,22 +20,34 @@
<file leaf-file-name="pixclient.go" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/pixclient.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="331">
<caret line="22" column="22" lean-forward="false" selection-start-line="22" selection-start-column="22" selection-end-line="22" selection-end-column="22" />
<state relative-caret-position="439">
<caret line="66" column="73" lean-forward="false" selection-start-line="66" selection-start-column="73" selection-end-line="66" selection-end-column="73" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="markov.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/markov/markov.go">
<entry file="file://$PROJECT_DIR$/examples/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<state relative-caret-position="490">
<caret line="44" column="65" lean-forward="false" selection-start-line="44" selection-start-column="65" selection-end-line="44" selection-end-column="65" />
<folding>
<element signature="e#14#80#0" expanded="true" />
<element signature="e#14#91#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="png.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/examples/pngwriter/png.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="16" column="30" lean-forward="false" selection-start-line="16" selection-start-column="30" selection-end-line="16" selection-end-column="30" />
<folding>
<element signature="e#14#86#0" expanded="true" />
</folding>
</state>
</provider>
@ -41,9 +55,27 @@
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Go File" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/markov/markov.go" />
<option value="$PROJECT_DIR$/pngwriter/png.go" />
<option value="$PROJECT_DIR$/examples/markov/markov.go" />
<option value="$PROJECT_DIR$/examples/pngwriter/png.go" />
<option value="$PROJECT_DIR$/pixclient.go" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
@ -51,7 +83,7 @@
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds">
<option name="width" value="1950" />
<option name="width" value="2160" />
<option name="height" value="1421" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
@ -70,8 +102,8 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="Scratches" />
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
@ -93,6 +125,28 @@
<option name="myItemId" value="pixclient" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="examples" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="pngwriter" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="pixclient" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="pixclient" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="examples" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="markov" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
@ -102,6 +156,16 @@
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="last_opened_file_path" value="$USER_HOME$" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
<property name="DefaultGoTemplateProperty" value="Go File" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/examples" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
@ -115,16 +179,16 @@
</option>
</component>
<component name="RunManager" selected="Go Single File.go run markov.go">
<configuration default="false" name="go run test.go" type="GoRunFileConfiguration" factoryName="Go Single File" temporary="true">
<module name="pixclient" />
<working_directory value="$PROJECT_DIR$/" />
<filePath value="$PROJECT_DIR$/main/test.go" />
<method />
</configuration>
<configuration default="false" name="go run markov.go" type="GoRunFileConfiguration" factoryName="Go Single File" temporary="true">
<module name="pixclient" />
<working_directory value="$PROJECT_DIR$/" />
<filePath value="$PROJECT_DIR$/markov/markov.go" />
<filePath value="$PROJECT_DIR$/examples/markov/markov.go" />
<method />
</configuration>
<configuration default="false" name="go run png.go" type="GoRunFileConfiguration" factoryName="Go Single File" temporary="true">
<module name="pixclient" />
<working_directory value="$PROJECT_DIR$/" />
<filePath value="$PROJECT_DIR$/examples/pngwriter/png.go" />
<method />
</configuration>
<configuration default="true" type="GoApplicationRunConfiguration" factoryName="Go Application">
@ -182,13 +246,13 @@
<method />
</configuration>
<list size="2">
<item index="0" class="java.lang.String" itemvalue="Go Single File.go run test.go" />
<item index="1" class="java.lang.String" itemvalue="Go Single File.go run markov.go" />
<item index="0" class="java.lang.String" itemvalue="Go Single File.go run markov.go" />
<item index="1" class="java.lang.String" itemvalue="Go Single File.go run png.go" />
</list>
<recent_temporary>
<list size="2">
<item index="0" class="java.lang.String" itemvalue="Go Single File.go run markov.go" />
<item index="1" class="java.lang.String" itemvalue="Go Single File.go run test.go" />
<item index="1" class="java.lang.String" itemvalue="Go Single File.go run png.go" />
</list>
</recent_temporary>
</component>
@ -196,19 +260,19 @@
<option name="remove_strategy" value="false" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="1950" height="1421" extended-state="0" />
<frame x="0" y="0" width="2160" height="1421" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.124357656" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.14146568" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32806623" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32806623" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
@ -225,26 +289,168 @@
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
<breakpoint-manager>
<option name="time" value="1" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/pixclient.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="459">
<caret line="27" column="19" lean-forward="false" selection-start-line="27" selection-start-column="19" selection-end-line="27" selection-end-column="19" />
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/markov/markov.go">
<entry file="file://$PROJECT_DIR$/examples/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="833">
<caret line="49" column="22" lean-forward="false" selection-start-line="49" selection-start-column="22" selection-end-line="49" selection-end-column="22" />
<folding>
<element signature="e#14#91#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examples/pngwriter/png.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="19" column="35" lean-forward="false" selection-start-line="19" selection-start-column="35" selection-end-line="19" selection-end-column="35" />
<folding>
<element signature="e#14#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pixclient.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1190">
<caret line="70" column="27" lean-forward="false" selection-start-line="70" selection-start-column="27" selection-end-line="70" selection-end-column="27" />
<folding>
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examples/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="833">
<caret line="49" column="22" lean-forward="false" selection-start-line="49" selection-start-column="22" selection-end-line="49" selection-end-column="22" />
<folding>
<element signature="e#14#91#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examples/pngwriter/png.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="19" column="35" lean-forward="true" selection-start-line="19" selection-start-column="35" selection-end-line="19" selection-end-column="35" />
<folding>
<element signature="e#14#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pixclient.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1139">
<caret line="67" column="31" lean-forward="false" selection-start-line="67" selection-start-column="31" selection-end-line="67" selection-end-column="31" />
<folding>
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examples/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="833">
<caret line="49" column="22" lean-forward="true" selection-start-line="49" selection-start-column="22" selection-end-line="49" selection-end-column="22" />
<folding>
<element signature="e#14#91#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examples/pngwriter/png.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="51" lean-forward="true" selection-start-line="10" selection-start-column="51" selection-end-line="10" selection-end-column="51" />
<folding>
<element signature="e#14#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pixclient.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examples/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="14" column="15" lean-forward="true" selection-start-line="14" selection-start-column="15" selection-end-line="14" selection-end-column="15" />
<folding>
<element signature="e#14#91#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examples/pngwriter/png.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="15" column="13" lean-forward="false" selection-start-line="15" selection-start-column="13" selection-end-line="15" selection-end-column="13" />
<folding>
<element signature="e#14#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pixclient.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examples/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding>
<element signature="e#14#91#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pixclient.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="459">
<caret line="27" column="19" lean-forward="false" selection-start-line="27" selection-start-column="19" selection-end-line="27" selection-end-column="19" />
<folding>
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examples/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="57" lean-forward="false" selection-start-line="10" selection-start-column="57" selection-end-line="10" selection-end-column="57" />
<folding>
<element signature="e#14#80#0" expanded="true" />
<element signature="e#14#91#0" expanded="true" />
</folding>
</state>
</provider>
@ -254,17 +460,17 @@
<state relative-caret-position="459">
<caret line="27" column="19" lean-forward="true" selection-start-line="27" selection-start-column="19" selection-end-line="27" selection-end-column="19" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/markov/markov.go">
<entry file="file://$PROJECT_DIR$/examples/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="153">
<caret line="9" column="25" lean-forward="false" selection-start-line="9" selection-start-column="25" selection-end-line="9" selection-end-column="25" />
<folding>
<element signature="e#14#80#0" expanded="true" />
<element signature="e#14#91#0" expanded="true" />
</folding>
</state>
</provider>
@ -274,18 +480,18 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/main/test.go" />
<entry file="file://$PROJECT_DIR$/markov/markov.go">
<entry file="file://$PROJECT_DIR$/examples/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="663">
<caret line="43" column="28" lean-forward="true" selection-start-line="43" selection-start-column="28" selection-end-line="43" selection-end-column="28" />
<folding>
<element signature="e#14#80#0" expanded="true" />
<element signature="e#14#91#0" expanded="true" />
</folding>
</state>
</provider>
@ -295,18 +501,18 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/main/test.go" />
<entry file="file://$PROJECT_DIR$/markov/markov.go">
<entry file="file://$PROJECT_DIR$/examples/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="22" column="34" lean-forward="true" selection-start-line="22" selection-start-column="34" selection-end-line="22" selection-end-column="34" />
<folding>
<element signature="e#14#80#0" expanded="true" />
<element signature="e#14#91#0" expanded="true" />
</folding>
</state>
</provider>
@ -316,7 +522,7 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
@ -327,7 +533,7 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
@ -338,7 +544,7 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
@ -349,7 +555,7 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
@ -360,7 +566,7 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
@ -370,7 +576,7 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
@ -380,7 +586,7 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
@ -390,7 +596,7 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
@ -400,7 +606,7 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
@ -410,7 +616,7 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
@ -420,36 +626,45 @@
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/main/test.go" />
<entry file="file://$PROJECT_DIR$/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding>
<element signature="e#14#80#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file:///usr/lib/golang/src/runtime/panic.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="499" column="0" lean-forward="false" selection-start-line="499" selection-start-column="0" selection-end-line="499" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examples/pngwriter/png.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="16" column="30" lean-forward="false" selection-start-line="16" selection-start-column="30" selection-end-line="16" selection-end-column="30" />
<folding>
<element signature="e#14#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examples/markov/markov.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="490">
<caret line="44" column="65" lean-forward="false" selection-start-line="44" selection-start-column="65" selection-end-line="44" selection-end-column="65" />
<folding>
<element signature="e#14#91#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pixclient.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="331">
<caret line="22" column="22" lean-forward="false" selection-start-line="22" selection-start-column="22" selection-end-line="22" selection-end-column="22" />
<state relative-caret-position="439">
<caret line="66" column="73" lean-forward="false" selection-start-line="66" selection-start-column="73" selection-end-line="66" selection-end-column="73" />
<folding>
<element signature="e#19#77#0" expanded="true" />
<element signature="e#19#86#0" expanded="true" />
</folding>
</state>
</provider>

View file

@ -4,18 +4,28 @@ import (
"git.jcg.re/jcgruenhage/pixclient"
"math/rand"
"net"
"strconv"
)
func main() {
x, y := 1920, 1200
client := pixclient.Init(net.IPv4(94, 45, 231, 39), 1234)
c := make(chan int)
for i := 0; i < 3; i++ {
go markov(strconv.Itoa(i), c)
}
print(<- c)
}
func markov(seed string, c chan int) {
client := pixclient.NewClient(net.IPv4(127, 0, 0, 1), 1235)
x, y := client.Size()
currentX := rand.Intn(x)
currentY := rand.Intn(y)
r, g, b := byte(255), byte(0), byte(0)
counter := 0
var direction int
for true {
direction := rand.Intn(4)
for ((currentX == x-1) && (direction == 1)) || ((currentX == 0) && (direction == 3)) || ((currentY == y-1) && (direction == 2)) || ((currentY == 0) && (direction == 0)) {
oldDirection := direction
for ((currentX == x-1) && (direction == 1)) || ((currentX == 0) && (direction == 3)) || ((currentY == y-1) && (direction == 2)) || ((currentY == 0) && (direction == 0) || oldDirection == direction) {
direction = rand.Intn(4)
}
if direction == 0 {
@ -32,7 +42,7 @@ func main() {
if counter%50 == 0 {
iterateColor(&r, &g, &b)
}
client.WritePixel(currentX, currentY, r, g, b, 255)
client.WritePixel(currentX, currentY, r, g, b, 50)
counter++
}
}

23
examples/pngwriter/png.go Normal file
View file

@ -0,0 +1,23 @@
package main
import (
"git.jcg.re/jcgruenhage/pixclient"
"net"
"image/png"
"os"
)
func main() {
client := pixclient.NewClient(net.IPv4(127, 0, 0, 1), 1235)
imgFile, err := os.Open("/home/jcgruenhage/testimg2.png")
check(err)
png, err := png.Decode(imgFile)
print("Bis hier hin funktioniere ich")
check(err)
client.WriteImage(png)
}
func check(err error) {
if err != nil {
panic(err)
}
}

View file

@ -6,6 +6,7 @@ import (
"net"
"strconv"
"strings"
"image"
)
type Client struct {
@ -14,12 +15,12 @@ type Client struct {
height int
}
func Init(addr net.IP, port int) *Client {
func NewClient(addr net.IP, port int) *Client {
var client Client
connection, err := net.Dial("tcp", addr.String()+":"+strconv.Itoa(port))
check(err)
client.connection = connection
client.Size()
client.height, client.width = client.Size()
return &client
}
@ -41,12 +42,21 @@ func (Client *Client) WritePixel(x, y int, r, g, b, a byte) error {
[]byte("\n")...)
Client.connection.Write(bytes)
//
//Client.connection.Write([]byte(
// fmt.Sprintf("PX %d %d %X\n", x, y, []byte{r, g, b, a})))
return nil
}
func (Client *Client) WriteImage(image image.Image) {
bounds := image.Bounds()
for x := bounds.Min.X; x < bounds.Max.X; x++ {
for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
r, g, b, a := image.At(x, y).RGBA()
Client.WritePixel(x, y, byte(r), byte(g), byte(b), byte(a))
}
}
}
func (Client *Client) Size() (int, int) {
Client.connection.Write([]byte("SIZE\n"))
reader := bufio.NewReader(Client.connection)
@ -54,8 +64,10 @@ func (Client *Client) Size() (int, int) {
check(err)
sizeString := string(size)
sizeArray := strings.Split(sizeString, " ")
Client.width, _ = strconv.Atoi(sizeArray[1])
Client.height, _ = strconv.Atoi(sizeArray[2])
Client.width, err = strconv.Atoi(strings.TrimSpace(sizeArray[1]))
check(err)
Client.height, err = strconv.Atoi(strings.TrimSpace(sizeArray[2]))
check(err)
return Client.width, Client.height
}