Skip to content

Commit

Permalink
Initial file commit
Browse files Browse the repository at this point in the history
  • Loading branch information
o7q committed Mar 7, 2023
1 parent e4afabb commit 7ec09a5
Show file tree
Hide file tree
Showing 26 changed files with 6,033 additions and 0 deletions.
98 changes: 98 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
<img src="assets/images/banner.png">

### **This program is still in very early-development, please report any bugs you find in the issues tab! I would also appreciate any feedback you have.**

<br>

# [<b>>> Download Latest</b>]()
### Welcome! DrawBot is a simple, universal drawing robot that works on nearly every game and program. (ex. Gartic Phone, Skribbl, Jackbox, Paint, etc.)

---

<img src="assets/images/program.png">

---

# Overview
DrawBot controls your mouse to artificially draw images on nearly any game or program.\
It can be quickly configured with with its simple preset system.

This program was inspired by https://github.com/IV2FI/DrawBot.

---

# Usage
**NOTE:** \
While drawing, you can push the **ESCAPE** key to abort the drawing process.

<!-- *You don't want to know how many times I screwed up my computer while developing DrawBot by making my mouse spazzing out. Don't worry, the program is pretty safe now, but I still kept the feature just in case of course.* 😉 -->

## Tutorial

<details>
<summary><b>Step 1.</b> Select an image</summary>

- **1.1.** Click the **Select Button** OR paste in a direct URL to an image (URLs are prioritized, if you are using a local image ensure the URL textbox is empty)

</details>

<details>
<summary><b>Step 2.</b> Define bounds</summary>


- **2.1.** Click the **P1 Button** and then click on the **top-left** of your canvas where the image will be drawn, this will define the first point
- **2.2** Click the **P2 Button** and then click on the **bottom-right** of your canvas where the image will be drawn, this will define the second point

</details>

<details>
<summary><b>Step 3.</b> Create or load a preset</summary>

- To create a preset
- Note: *The preset system only saves the color and the coordinate of that color.*
- **3.1.** Click the **Add Color Button** and then click on a color on the visible color palette of the program/game
- **3.2.** Repeat step **3.1** until you have selected all of the colors you need (note: it does not matter in which order you select them, the program will automatically determine which color to use when drawing, also, you can click the **Reset Button** to restart the preset creation process)
- **3.3.** Name the preset by typing a name inside the textbox, click the **Save Button** to save it
- To load a preset
- **3.1.** Select a preset inside of the **Preset List**
- **3.2.** Click the **Load Button** to load the selected preset (note: click the **Delete Button** to delete the selected preset)

</details>

<details>
<summary><b>Step 4.</b> Drawing</summary>

- **4.1.** Determine the draw settings with the **Quality** and **Speed** sliders. Quality will increase the pixel density at the cost of slowness. Speed will increase speed, speeds too high can cause issues on some programs/games
- **4.2.** Click the **Draw Button** to start! **Remember:** You can push the **ESCAPE** key to abort the drawing process.

</details>

*Video tutorial coming soon*

<br>

## Interface
- Canvas Configuration
- **Select Image Button** Opens a file dialog to select a local image
- **URL Image Textbox** Uses a URL from the internet instead of a local image (URL image is prioritized, ensure it is blank if you are using a local image)
- **Bounding Box Configuration**
- **P1 Button** (Point-1) Select the top-left point of the drawing area
- **P2 Button** (Point-2) Select the bottom-right point of the drawing area
- Preset Creator
- **Add Color Button** Adds a new color to the usable colors in the preset (it does not matter which order you put them in)
- **Reset Button** Clears the entire preset process
- **Preset Name Textbox** Name for the preset
- **Save Button** Save the preset to a file so it can be loaded later
- Preset Loader
- **Preset List** Displays all of the user-created presets
- **Load Button** Loads the selected preset
- **Delete Button** Deletes the selected preset
- Quality/Speed Controllers
- **Quality Slider** Change the pixel density of the image (higher looks better but is slower)
- **Speed Slider** Change the speed of the drawing process (if set too high it can cause issues in some programs)
- **Draw Button** Draws the selected image with select configuration

---

**DrawBot** \
Written in C# with .NET Framework 4.8
Binary file added assets/images/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/program.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_raw/banner.pdn
Binary file not shown.
1 change: 1 addition & 0 deletions assets_raw/icon/icon.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ffmpeg -i icon_256x.png icon.ico
Binary file added assets_raw/icon/icon.ico
Binary file not shown.
Binary file added assets_raw/icon/icon.pdn
Binary file not shown.
Binary file added assets_raw/icon/icon_256x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets_raw/icon/icon_512x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file added changelog.txt
Empty file.
6 changes: 6 additions & 0 deletions src/DrawBot/App.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
</configuration>
91 changes: 91 additions & 0 deletions src/DrawBot/DrawBot.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{CBBCD54B-07B3-4BAA-B246-4DFBF8984780}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>DrawBot</RootNamespace>
<AssemblyName>DrawBot</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>build\DrawBot\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="PresentationCore" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="program.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="program.Designer.cs">
<DependentUpon>program.cs</DependentUpon>
</Compile>
<Compile Include="init.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="program.resx">
<DependentUpon>program.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
25 changes: 25 additions & 0 deletions src/DrawBot/DrawBot.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33424.131
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DrawBot", "DrawBot.csproj", "{CBBCD54B-07B3-4BAA-B246-4DFBF8984780}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{CBBCD54B-07B3-4BAA-B246-4DFBF8984780}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CBBCD54B-07B3-4BAA-B246-4DFBF8984780}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CBBCD54B-07B3-4BAA-B246-4DFBF8984780}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CBBCD54B-07B3-4BAA-B246-4DFBF8984780}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {04557CF2-8B4E-4B8D-B7ED-FFE0BDDB0A39}
EndGlobalSection
EndGlobal
36 changes: 36 additions & 0 deletions src/DrawBot/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("DrawBot")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("cbbcd54b-07b3-4baa-b246-4dfbf8984780")]

// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
63 changes: 63 additions & 0 deletions src/DrawBot/Properties/Resources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 7ec09a5

Please sign in to comment.