using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using ImageMagick;
namespace Magick_Mantra
{
public partial class Form1 : Form
{
List<string> quotes = new List<string>();
int curr = 0;
public Form1()
{
InitializeComponent();
using (StreamReader r = new StreamReader("c:\\quotes\\in.txt"))
{
string line = r.ReadLine();
while (((line != null)))
{
quotes.Add(line);
line = r.ReadLine();
}
}
}
private void btnGo_Click(object sender, EventArgs e)
{
foreach (string line in quotes)
{
curr += 1;
string[] parts = line.Split('|');
string quote = parts[0];
string author = parts[1];
textBox1.Text = curr.ToString("00000");
textBox2.Text = quote;
textBox3.Text = author;
textBox1.Refresh();
textBox2.Refresh();
textBox3.Refresh();
make_pic(quote, author);
make_transp(quote, author);
}
Environment.Exit(0);
}
private void make_pic(string quote, string author)
{
var rand = new Random();
var files = Directory.GetFiles("c:\\quotes\\imagein", "*.jpg");
string infile = files[rand.Next(files.Length)];
var rand2 = new Random();
var ffiles = Directory.GetFiles("c:\\quotes\\fonts", "*.ttf");
string ffile = ffiles[rand.Next(ffiles.Length)];
using (MagickImage image = new MagickImage(infile))
{
int ih = image.Height;
int iw = image.Width;
int w1 = (int)(iw * 0.9); //box width
int w2 = (int)(iw * 0.05); //box x coord
int h1 = (int)(ih * 0.8); //box1 height
int h2 = (int)(ih * 0.08); //box2 height
int h3 = (int)(ih * 0.05); //box1 y coord
int h4 = (int)(ih * 0.85); //box2 y coord
int s2 = (int)(iw / 400); //box1 stroke
int s3 = (int)(iw / 600); //box2 stroke
int s4 = (int)(iw / 1000); //logo stroke
int l1 = (int)(iw * 0.20); //logo width
int l2 = (int)(ih * 0.06); //logo height
int l3 = (int)(iw * 0.75); //logo x coord
int l4 = (int)(ih * 0.92); //logo ycoord
using (MagickImage image2 = new MagickImage(new MagickColor("transparent"), w1, h1))
{
using (MagickImage image3 = new MagickImage(new MagickColor("transparent"), w1, h2))
{
using (MagickImage image4 = new MagickImage(new MagickColor("transparent"), l1, l2))
{
var random = new Random();
var color1 = String.Format("#{0:X6}", random.Next(0x1000000));
var color2 = String.Format("#{0:X6}", random.Next(0x1000000));
image2.Settings.FillColor = new MagickColor(color1);
image2.Settings.BorderColor = new MagickColor("#0000ff");
image2.Settings.StrokeColor = new MagickColor("#000000");
image2.Settings.StrokeWidth = s2;
image2.Settings.Font = ffile ;
image2.Settings.FontWeight = FontWeight.Bold;
image2.Settings.TextGravity = Gravity.Center;
image2.Read("caption:" + quote);
image.Composite(image2, w2, h3, CompositeOperator.Over);
image3.Settings.FillColor = new MagickColor(color2);
image3.Settings.FontFamily = "Arial";
image3.Settings.TextGravity = Gravity.Center;
image3.Settings.FontWeight = FontWeight.Bold;
image3.Settings.StrokeColor = new MagickColor("#000000");
image3.Settings.StrokeWidth = s3;
image3.Read("caption:" + author);
image.Composite(image3, w2, h4, CompositeOperator.Over);
image4.Settings.FillColor = new MagickColor("#ff0000");
image4.Settings.FontFamily = "Arial";
image4.Settings.TextGravity = Gravity.Center;
image4.Settings.FontWeight = FontWeight.Bold;
image4.Settings.StrokeColor = new MagickColor("#000000");
image4.Settings.StrokeWidth = s4;
image4.Read("caption:Myvideos.xyz");
image.Composite(image4, l3, l4, CompositeOperator.Over);
string filename = "out-" + curr.ToString("00000") + ".jpg";
image.Write("c:\\quotes\\imageout\\" + filename);
}
}
}
}
}
private void make_transp(string quote, string author)
{
using (MagickImage image = new MagickImage(new MagickColor("transparent"), 1280, 720))
{
int ih = image.Height;
int iw = image.Width;
int w1 = (int)(iw * 0.9); //box width
int w2 = (int)(iw * 0.05); //box x coord
int h1 = (int)(ih * 0.8); //box1 height
int h2 = (int)(ih * 0.08); //box2 height
int h3 = (int)(ih * 0.05); //box1 y coord
int h4 = (int)(ih * 0.85); //box2 y coord
int s2 = (int)(iw / 400); //box1 stroke
int s3 = (int)(iw / 600); //box2 stroke
using (MagickImage image2 = new MagickImage(new MagickColor("transparent"), w1, h1))
{
using (MagickImage image3 = new MagickImage(new MagickColor("transparent"), w1, h2))
{
var random = new Random();
var color1 = String.Format("#{0:X6}", random.Next(0x1000000));
var color2 = String.Format("#{0:X6}", random.Next(0x1000000));
image2.Settings.FillColor = new MagickColor(color1);
image2.Settings.BorderColor = new MagickColor("#0000ff");
image2.Settings.StrokeColor = new MagickColor("#000000");
image2.Settings.StrokeWidth = s2;
image2.Settings.FontFamily = "Arial";
image2.Settings.FontWeight = FontWeight.Bold;
image2.Settings.TextGravity = Gravity.Center;
image2.Read("caption:"+quote);
image.Composite(image2, w2, h3, CompositeOperator.Over);
image3.Settings.FillColor = new MagickColor(color2);
image3.Settings.FontFamily = "Arial";
image3.Settings.TextGravity = Gravity.Center;
image3.Settings.FontWeight = FontWeight.Bold;
image3.Settings.StrokeColor = new MagickColor("#000000");
image3.Settings.StrokeWidth = s3;
image3.Read("caption:"+author);
image.Composite(image3, w2, h4, CompositeOperator.Over);
string filename = "out-" + curr.ToString("00000") + ".png";
image.Write("c:\\quotes\\transout\\" + filename);
}
}
}
}
}
}