public void RoundTripFiles() { var testData = @"{ claimData: ""0x00000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f0f1275000000000000000000000000000000000000000000000000000000005f1e54b5000000000000000000000000d90fc89e89e3e5b75256b5aa617f887c583b29a2000000000000000000000000c0c84e49b0d5a82e046914d9a93f9f64bdb41ca387bca611c58e3bc397f0994a4ea54a02d054c81f21f4901eb5788f1098b2a5dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001""}"; var dataFilePath = Path.GetTempFileName(); var injectedImagePath = Path.Join(Path.GetTempPath(), Path.GetRandomFileName() + ".png"); File.WriteAllText(dataFilePath, testData, Encoding.UTF8); var imageMaker = new ImageMaker() { ImgInputFile = "test_input.png", ImgOutputFile = injectedImagePath, DataFile = dataFilePath }; imageMaker.Header.BitsPerPixel = 2; imageMaker.Header.SetWritableRange(105, 150, 165, 200); imageMaker.Run(); var dataFilePath2 = Path.GetTempFileName(); var dataMaker = new DataMaker() { ImgInputFile = injectedImagePath, DataFile = dataFilePath2 }; dataMaker.Run(); var resultData = File.ReadAllText(dataFilePath2, Encoding.UTF8); Assert.AreEqual(testData, resultData); }
/// <summary> /// Generates the title image for the mission. /// </summary> /// <param name="mission">The misison which requires a title image.</param> /// <returns>The mission title image, as an array of bytes for a JPEG file.</returns> private byte[] GetTitleImage(DCSMission mission) { byte[] imageBytes; using (ImageMaker imgMaker = new ImageMaker()) { imgMaker.TextOverlay.Text = mission.MissionName; imgMaker.TextOverlay.Alignment = ContentAlignment.BottomCenter; List <ImageMakerLayer> layers = new List <ImageMakerLayer>(); string[] theaterImages = Directory.GetFiles($"{BRPaths.INCLUDE_JPG}Theaters\\", $"{mission.Theater}*.jpg"); if (theaterImages.Length == 0) { layers.Add(new ImageMakerLayer("_default.jpg")); } else { layers.Add(new ImageMakerLayer("Theaters\\" + Path.GetFileName(Toolbox.RandomFrom(theaterImages)))); } layers.Add(new ImageMakerLayer($"Flags\\{GeneratorTools.RemoveAfterComma(mission.Coalitions[(int)mission.CoalitionPlayer])}.png", ContentAlignment.TopLeft, 8, 8, 0, .5)); imageBytes = imgMaker.GetImageBytes(layers.ToArray()); } return(imageBytes); }
public MainPage() { this.InitializeComponent(); imageMaker = new ImageMaker(); jobManager = new JobManager(UpdateJobControl, UpdateJobUnitControl) { ImageMaker = imageMaker }; StartButton.IsEnabled = PauseButton.IsEnabled = CancelButton.IsEnabled = false; }
public void Setup() { _imageMaker = new ImageMaker() { ImgInputFile = "../../test_input.png", DataFile = "../../test_data.txt" }; _imageMaker.Header.BitsPerPixel = 2; _dataMaker = new DataMaker() { ImgInputFile = "../../test_input.png", DataFile = "../../test_data.txt" }; _dataMaker.Header.BitsPerPixel = 2; }
public async Task MainAsync() { c.title = "KipoBot"; string[] reqPaths = { "data", "fonts", "banners" }; foreach (var path in reqPaths) { if (!Helpers.AssertDirectory(path)) { return; } } if (!ConfigurationService.AssertConfigFile()) { Logger.info($"Template config file created in {Helpers.WORKING_DIRECTORY}/config.json\nEdit it and rerun Kipo."); return; } Logger.info("Found config!"); ImageMaker.loadBanners($"banners/"); using (var services = ConfigureServices()) { var client = services.GetRequiredService <DiscordSocketClient>(); var config = services.GetRequiredService <ConfigurationService>(); var database = services.GetRequiredService <DatabaseService>(); var interactive = services.GetRequiredService <InteractiveService>(); client.Log += LogAsync; services.GetRequiredService <CommandService>().Log += LogAsync; await client.LoginAsync(TokenType.Bot, config.token); await client.StartAsync(); await services.GetRequiredService <CommandHandlingService>().InitializeAsync(); await client.SetGameAsync(config.prefix + "help"); startJobManager(); await Task.Delay(-1); } }
private Task UserJoined(SocketGuildUser arg) { if (servers != null && servers.Count != 0) { foreach (var server in servers) { if (server.id == arg.Guild.Id) { if (server.channel_id != null) { Stream file = ImageMaker.welcomeUser(arg.Username, server.caption, arg.Guild.Name); arg.Guild.GetTextChannel(server.channel_id.Value).SendFileAsync(file, "welcome.png", $"{server.message.Replace("%MENTION%", $"{arg.Mention}").Replace("%USERNAME%", $"{arg.Username}").Replace("%SERVERNAME%", $"{arg.Guild.Name}")}"); } } } } return(Task.CompletedTask); }
public void ScreenShotTaker() { int waitForPlot = 100; while (keepTakerFlag) { waitFlag.Reset(); waitFlag.WaitOne(); Thread.Sleep(waitForPlot); if (screenShotTarget == 0) { ImageMaker.ViewToPng(bars, DirectoryDef.PictureTempPath); } else if (screenShotTarget == 1) { ImageMaker.ViewToPng(PrintLineChart, DirectoryDef.PictureTempPath); } generateWaitFlag.Set(); } }
public async Task Preview() { foreach (var server in database.servers) { if (server.id == Context.Guild.Id) { if (server.channel_id != null) { Stream file = ImageMaker.welcomeUser(Context.User.Username, server.caption, Context.Guild.Name); await Context.Channel.SendMessageAsync("Message will be send in channel <#" + server.channel_id + "> when new user joins."); await Context.Channel.SendFileAsync(file, "welcome.png", $"{server.message.Replace("%MENTION%", $"{Context.User.Mention}").Replace("%USERNAME%", $"{Context.User.Username}").Replace("%SERVERNAME%", $"{Context.Guild.Name}")}"); } else { await Context.Channel.SendMessageAsync("Enable the welcome module first!"); } } } }
public void RoundTripDataReadsHeader() { var testData = new byte[] { 1, 2, 3, 4 }; var dataToInject = new BitArray(testData); var bmp = _FilledSquare(Color.White, 10, 10); var whitePixels = _imageMaker.PixelsFromImage(bmp); var imageMaker = new ImageMaker(); imageMaker.Header.BitsPerPixel = 2; var dataMaker = new DataMaker(); dataMaker.Header.BitsPerPixel = -1; var injectedPixels = imageMaker.InjectData(whitePixels, dataToInject, 10, 10); byte[] extractedData = dataMaker.ExtractData(injectedPixels, 10, 10); Assert.AreEqual(testData, extractedData); }
private void CreateImageFiles(CampaignTemplate campaignTemplate, string campaignFilePath) { string baseFileName = Path.Combine(Path.GetDirectoryName(campaignFilePath), Path.GetFileNameWithoutExtension(campaignFilePath)); string allyFlagName = GeneratorTools.RemoveAfterComma(campaignTemplate.GetCoalition(campaignTemplate.PlayerCoalition)); string enemyFlagName = GeneratorTools.RemoveAfterComma(campaignTemplate.GetCoalition((Coalition)(1 - (int)campaignTemplate.PlayerCoalition))); using (ImageMaker imgMaker = new ImageMaker()) { string theaterImage; string[] theaterImages = Directory.GetFiles($"{BRPaths.INCLUDE_JPG}Theaters\\", $"{campaignTemplate.ContextTheaterID}*.jpg"); if (theaterImages.Length == 0) { theaterImage = "_default.jpg"; } else { theaterImage = "Theaters\\" + Path.GetFileName(Toolbox.RandomFrom(theaterImages)); } // Print the name of the campaign over the campaign "title picture" imgMaker.TextOverlay.Text = Path.GetFileNameWithoutExtension(campaignFilePath); imgMaker.TextOverlay.Alignment = ContentAlignment.TopCenter; File.WriteAllBytes($"{baseFileName}_Title.jpg", imgMaker.GetImageBytes( new ImageMakerLayer(theaterImage), new ImageMakerLayer($"Flags\\{enemyFlagName}.png", ContentAlignment.MiddleCenter, -32, -32), new ImageMakerLayer($"Flags\\{allyFlagName}.png", ContentAlignment.MiddleCenter, 32, 32))); // Reset background and text overlay imgMaker.BackgroundColor = Color.Black; imgMaker.TextOverlay.Text = ""; File.WriteAllBytes($"{baseFileName}_Success.jpg", imgMaker.GetImageBytes("Sky.jpg", $"Flags\\{allyFlagName}.png")); File.WriteAllBytes($"{baseFileName}_Failure.jpg", imgMaker.GetImageBytes("Fire.jpg", $"Flags\\{allyFlagName}.png", "Burning.png")); } }
public void RoundTripDataWritablePixels() { var testData = new byte[] { 213, 214, 215, 216 }; var dataToInject = new BitArray(testData); var bmp = _FilledSquare(Color.White, 10, 10); var whitePixels = _imageMaker.PixelsFromImage(bmp); var imageMaker = new ImageMaker(); imageMaker.Header.BitsPerPixel = 8; imageMaker.Header.SetWritableRange(4, 4, 8, 8); var dataMaker = new DataMaker(); var injectedPixels = imageMaker.InjectData(whitePixels, dataToInject, 10, 10); Dump(injectedPixels, "Injected pixels"); byte[] extractedData = dataMaker.ExtractData(injectedPixels, 10, 10); Assert.AreEqual(testData, extractedData); }
public async Task memeFrom([Remainder] String text) { try { HttpClient client = new HttpClient(); var attachments = Context.Message.Attachments; String imageURL = Context.Message.Attachments.ElementAt(0).Url; String memeText = text; var buffer = await client.GetByteArrayAsync(imageURL); MagickImage memeImg = new MagickImage(buffer); String[] memeTextSplit = memeText.Split(';'); var composedMeme = ImageMaker.composeMeme(memeImg, memeTextSplit[0], memeTextSplit[1]); await Context.Channel.SendFileAsync(composedMeme, "image.png", Context.User.Mention); await Context.Message.DeleteAsync(); } catch (Exception e) { await Context.Channel.SendMessageAsync($"Invalid format."); } }
private void Generate() { var elevation_settings = new MapMaker.MapSettings(); elevation_settings.frequency = trkFreq1.Value; elevation_settings.octaves = trkOctave1.Value; elevation_settings.persistence = trkPers1.Value; elevation_settings.redistribution = trkRedis1.Value; var moisture_settings = new MapMaker.MapSettings(); moisture_settings.frequency = trkFreq2.Value; moisture_settings.octaves = trkOctave2.Value; moisture_settings.persistence = trkPers2.Value; moisture_settings.redistribution = trkRedis2.Value; var mapmaker = new MapMaker(); var map = mapmaker.CreateMap(512, 512, elevation_settings, moisture_settings); pictureBox1.Image = ImageMaker.CreateImage(map.colored); }
public async Task RefreshBanners() { ImageMaker.reloadBanners("banners/"); }
static void Main(string[] args) { ImageMaker imageMaker = new ImageMaker(); imageMaker.MakeWindow(); }