diff --git a/KIKunstKirstenKlöckner.sln b/KIKunstKirstenKlöckner.sln index b4922af..ff37735 100644 --- a/KIKunstKirstenKlöckner.sln +++ b/KIKunstKirstenKlöckner.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.6.33829.357 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KIKunstKirstenKlöckner", "KIKunstKirstenKlöckner\KIKunstKirstenKlöckner.csproj", "{0085541E-50D4-42A5-9BFD-6CE402FB8B26}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KIKunstKirstenKlöckner", "KIKunstKirstenKlöckner\KIKunstKirstenKlöckner.csproj", "{0085541E-50D4-42A5-9BFD-6CE402FB8B26}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/KIKunstKirstenKlöckner/Data/WeatherForecast.cs b/KIKunstKirstenKlöckner/Data/WeatherForecast.cs deleted file mode 100644 index 5071de7..0000000 --- a/KIKunstKirstenKlöckner/Data/WeatherForecast.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace KIKunstKirstenKlöckner.Data; - -public class WeatherForecast -{ - public DateOnly Date { get; set; } - - public int TemperatureC { get; set; } - - public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); - - public string? Summary { get; set; } -} diff --git a/KIKunstKirstenKlöckner/Data/WeatherForecastService.cs b/KIKunstKirstenKlöckner/Data/WeatherForecastService.cs deleted file mode 100644 index c1f7986..0000000 --- a/KIKunstKirstenKlöckner/Data/WeatherForecastService.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace KIKunstKirstenKlöckner.Data; - -public class WeatherForecastService -{ - private static readonly string[] Summaries = new[] - { - "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" - }; - - public Task GetForecastAsync(DateOnly startDate) - { - return Task.FromResult(Enumerable.Range(1, 5).Select(index => new WeatherForecast - { - Date = startDate.AddDays(index), - TemperatureC = Random.Shared.Next(-20, 55), - Summary = Summaries[Random.Shared.Next(Summaries.Length)] - }).ToArray()); - } -} diff --git a/KIKunstKirstenKlöckner/Pages/AiArt.razor b/KIKunstKirstenKlöckner/Pages/AiArt.razor index 1bbb3b5..06fba55 100644 --- a/KIKunstKirstenKlöckner/Pages/AiArt.razor +++ b/KIKunstKirstenKlöckner/Pages/AiArt.razor @@ -1,4 +1,6 @@ +@page "/" @page "/aiart" + @using OpenAI_API @using OpenAI_API.Chat @using OpenAI_API.Models @@ -12,8 +14,7 @@

Wunschbilder von KI nur für dich

- - Nenne uns deinen Wunsch: + Nenne uns deinen Wunsch: @@ -42,14 +43,22 @@ MouseEnter="@(args => ShowTemperatureTooltip(args))" MouseLeave="TooltipService.Close" AlignItems="AlignItems.Center" Wrap="FlexWrap.Wrap"> - @_imagePrompt + @_imagePromptEnglish Die Idee, die gemalt wird: - @_imageDescription + + + + + @_imageDescription + + + + @@ -57,7 +66,7 @@ Verändere hier dein Bild durch Worte: - + await DoStuff(false))>Generate @@ -160,8 +169,9 @@ , new() { Position = TooltipPosition.Bottom, Duration = null}); - private string _imagePrompt = "\"Painting of a soccer match with the Hamburger SV team scoring multiple goals, vibrant colors and dynamic brushstrokes.\" Watercolor + ink on paper, Pen drawing, wet-on-wet technique, dry-on-dry technique, dabbing technique."; + private string _imagePromptEnglish = "\"Painting of a soccer match with the Hamburger SV team scoring multiple goals, vibrant colors and dynamic brushstrokes.\""; private string _imageDescription = "Ich habe mich für diese Interpretation des Titels entschieden, um die Dynamik und den Erfolg des Hamburger SV Fußballvereins darzustellen. Durch die Darstellung eines Spiels, in dem der HSV viele Tore schießt, wird die Leidenschaft und das Streben nach Erfolg hervorgehoben. Die lebendigen Farben und die dynamischen Pinselstriche sollen die Energie und Aufregung des Spiels wiedergeben."; + private string _imagePrompt = ""; private float temperature = 0.9f; private string request = ""; @@ -225,7 +235,7 @@ _client.DefaultRequestHeaders.Clear(); _client.DefaultRequestHeaders.Add("Authorization", $"Bearer {API_TOKEN}"); - + return base.OnInitializedAsync(); } @@ -285,7 +295,7 @@ if (Debugger.IsAttached) Debugger.Break(); - + await FailedToDrawImage(); } } @@ -405,7 +415,8 @@ } } - _imagePrompt = await converse.GetResponseFromChatbotAsync(); + _imagePromptEnglish = await converse.GetResponseFromChatbotAsync(); + _imagePrompt = _imagePromptEnglish; _imagePrompt += " Watercolor + ink on paper, Pen drawing, wet-on-wet technique, dry-on-dry technique, dabbing technique."; converse.AppendUserInput(_imageDescriptionPrompt); _imageDescription = await converse.GetResponseFromChatbotAsync(); @@ -435,5 +446,13 @@ } } + private void NavigateToGallery() + { + NavigationManager.NavigateTo("/gallery"); + } + + [Inject] + private NavigationManager NavigationManager { get; set; } + } diff --git a/KIKunstKirstenKlöckner/Pages/Counter.razor b/KIKunstKirstenKlöckner/Pages/Counter.razor deleted file mode 100644 index ef23cb3..0000000 --- a/KIKunstKirstenKlöckner/Pages/Counter.razor +++ /dev/null @@ -1,18 +0,0 @@ -@page "/counter" - -Counter - -

Counter

- -

Current count: @currentCount

- - - -@code { - private int currentCount = 0; - - private void IncrementCount() - { - currentCount++; - } -} diff --git a/KIKunstKirstenKlöckner/Pages/FetchData.razor b/KIKunstKirstenKlöckner/Pages/FetchData.razor deleted file mode 100644 index ce8ed95..0000000 --- a/KIKunstKirstenKlöckner/Pages/FetchData.razor +++ /dev/null @@ -1,47 +0,0 @@ -@page "/fetchdata" -@using KIKunstKirstenKlöckner.Data -@inject WeatherForecastService ForecastService - -Weather forecast - -

Weather forecast

- -

This component demonstrates fetching data from a service.

- -@if (forecasts == null) -{ -

Loading...

-} -else -{ - - - - - - - - - - - @foreach (var forecast in forecasts) - { - - - - - - - } - -
DateTemp. (C)Temp. (F)Summary
@forecast.Date.ToShortDateString()@forecast.TemperatureC@forecast.TemperatureF@forecast.Summary
-} - -@code { - private WeatherForecast[]? forecasts; - - protected override async Task OnInitializedAsync() - { - forecasts = await ForecastService.GetForecastAsync(DateOnly.FromDateTime(DateTime.Now)); - } -} diff --git a/KIKunstKirstenKlöckner/Pages/Gallery.razor b/KIKunstKirstenKlöckner/Pages/Gallery.razor new file mode 100644 index 0000000..14a1d2b --- /dev/null +++ b/KIKunstKirstenKlöckner/Pages/Gallery.razor @@ -0,0 +1,120 @@ +@page "/gallery" + + + + + +
+
+
+ +

@infoText

+
+
+ +
+
+
+ + + +@code { + List imagePaths = new List(); + string selectedImage; + string infoText = "Info Text"; + string popupStyle = "display: none;"; + + protected override async Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + + // Get the physical path to the folder + string folderPath = Path.Combine(_environment.WebRootPath, "generated_images"); + + if (Directory.Exists(folderPath)) + { + // Load the image file names from the folder + var imageFiles = Directory.GetFiles(folderPath, "*.jpg"); + + // Get the relative paths to the images + imagePaths = imageFiles.Select(file => file.Replace(_environment.WebRootPath, "").Replace("\\", "/")).ToList(); + } + } + + private void ShowImageInfo(string imagePath) + { + selectedImage = imagePath; + infoText = "Info Text"; // Hier kannst du den gewünschten Infotext setzen + popupStyle = "display: block;"; + } + + private void CloseImageInfo() + { + popupStyle = "display: none;"; + } + + [Inject] + private IWebHostEnvironment _environment { get; set; } +} diff --git a/KIKunstKirstenKlöckner/Pages/Index.razor b/KIKunstKirstenKlöckner/Pages/Index.razor deleted file mode 100644 index 6085c4a..0000000 --- a/KIKunstKirstenKlöckner/Pages/Index.razor +++ /dev/null @@ -1,9 +0,0 @@ -@page "/" - -Index - -

Hello, world!

- -Welcome to your new app. - - diff --git a/KIKunstKirstenKlöckner/Program.cs b/KIKunstKirstenKlöckner/Program.cs index ebf5b42..12038c0 100644 --- a/KIKunstKirstenKlöckner/Program.cs +++ b/KIKunstKirstenKlöckner/Program.cs @@ -1,6 +1,3 @@ -using KIKunstKirstenKlöckner.Data; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Web; using Radzen; var builder = WebApplication.CreateBuilder(args); @@ -8,7 +5,6 @@ var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddRazorPages(); builder.Services.AddServerSideBlazor(); -builder.Services.AddSingleton(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); diff --git a/KIKunstKirstenKlöckner/Shared/MainLayout.razor b/KIKunstKirstenKlöckner/Shared/MainLayout.razor index 9debe83..7acd7ba 100644 --- a/KIKunstKirstenKlöckner/Shared/MainLayout.razor +++ b/KIKunstKirstenKlöckner/Shared/MainLayout.razor @@ -3,14 +3,13 @@ KIKunstKirstenKlöckner
+ @* + *@
-
- About -
@Body diff --git a/KIKunstKirstenKlöckner/Shared/SurveyPrompt.razor b/KIKunstKirstenKlöckner/Shared/SurveyPrompt.razor deleted file mode 100644 index ec64baa..0000000 --- a/KIKunstKirstenKlöckner/Shared/SurveyPrompt.razor +++ /dev/null @@ -1,16 +0,0 @@ -
- - @Title - - - Please take our - brief survey - - and tell us what you think. -
- -@code { - // Demonstrates how a parent component can supply parameters - [Parameter] - public string? Title { get; set; } -} diff --git a/KIKunstKirstenKlöckner/wwwroot/test_prompt.txt b/KIKunstKirstenKlöckner/wwwroot/test_prompt.txt index 0b96f43..e98d9ed 100644 --- a/KIKunstKirstenKlöckner/wwwroot/test_prompt.txt +++ b/KIKunstKirstenKlöckner/wwwroot/test_prompt.txt @@ -1,10 +1,10 @@ Kunststil und Techniken: Kirsten Klöckner ist eine Künstlerin, die sich auf Aquarell- und Tusche-Materialien spezialisiert hat. Diese Techniken erfordern ein hohes Maß an Geschick und Präzision, da sie sowohl transparente als auch deckende Effekte erzeugen kann. Die Verwendung von Papier als Untergrund ermöglicht es ihr, mit verschiedenen Strukturen und Texturen zu experimentieren. Die Vielfalt der Techniken, die sie beherrscht - wie Federzeichnung, Pinselzeichnung, Nass-in-Nass-Technik, Trocken-auf-Trocken-Technik und Lasur - ermöglicht es ihr, ihre künstlerische Vision in unterschiedlichen Ausdrucksformen zu realisieren. -Themen und Motive: Klöckners Kunst zeigt eine breite Palette von Themen und Motiven. Ihre Werke enthalten oft Naturmotive wie Schafe, Pferde und Blumen, die eine Verbindung zur Natur und zum Landleben nahelegen. Gleichzeitig widmet sie sich aber auch gesellschaftlichen und politischen Anliegen, wie zum Beispiel Gastfreundschaft, Verantwortung, Klimaschutz und kritischen Reflektionen über den Alltag. Die Vielfalt der Themen zeigt, dass sie eine Künstlerin ist, die sich für viele Facetten des Lebens interessiert und ihre Kunst als Ausdrucksmittel für verschiedene Gedanken und Gefühle nutzt. +Themen und Motive: Klöckners Kunst zeigt eine breite Palette von Themen und Motiven. Ihre Werke enthalten oft Naturmotive. Gleichzeitig widmet sie sich aber auch gesellschaftlichen und politischen Anliegen, wie zum Beispiel Gastfreundschaft, Verantwortung, Klimaschutz und kritischen Reflektionen über den Alltag. Die Vielfalt der Themen zeigt, dass sie eine Künstlerin ist, die sich für viele Facetten des Lebens interessiert und ihre Kunst als Ausdrucksmittel für verschiedene Gedanken und Gefühle nutzt. Oftmals werden die Kernobjekte eines Werkes sehr detailliert dargestellt und etwas weniger abstrakt. Emotionen und Interpretation: Kirsten Klöckners Kunst scheint stark von Emotionen durchdrungen zu sein, die bei den Betrachtern Resonanz erzeugen. Die Assoziationen und Reaktionen anderer Menschen auf ihre Werke reichen von Freude und Dankbarkeit bis hin zu nachdenklichen Reflexionen über gesellschaftliche Fragen. Dies deutet darauf hin, dass ihre Kunst eine breite Palette von Emotionen anspricht und eine starke Verbindung zu den Betrachtern herstellt. Klöckners Fähigkeit, Emotionen in ihren Werken zu vermitteln, zeugt von ihrer künstlerischen Sensibilität und ihrer Fähigkeit, eine tiefere Ebene der Kommunikation mit ihrem Publikum zu erreichen. -Narrative Elemente: In ihrer Kunst integriert Klöckner oft narrative Elemente, die Geschichten erzählen oder eine tiefere Bedeutung hervorheben. Diese erzählerischen Aspekte tragen dazu bei, dass ihre Werke komplexer und aussagekräftiger werden. Die Verwendung von Symbolen wie Schleifen, Tischen und Haken in ihren Bildern gibt den Betrachtern einen zusätzlichen Anreiz, die Bedeutung hinter den Kunstwerken zu erkunden und sich mit den dargestellten Themen auseinanderzusetzen. +Narrative Elemente: In ihrer Kunst integriert Klöckner oft narrative Elemente, die Geschichten erzählen oder eine tiefere Bedeutung hervorheben. Diese erzählerischen Aspekte tragen dazu bei, dass ihre Werke komplexer und aussagekräftiger werden. Die Verwendung von Symbolen wie Schleifen, Tischen und Haken in ihren Bildern gibt den Betrachtern einen zusätzlichen Anreiz, die Bedeutung hinter den Kunstwerken zu erkunden und sich mit den dargestellten Themen auseinanderzusetzen. Sie teilt die Titel ihrer Werke oft in einzelne Worte welche dann als jeweiliges Element Einzug in ihre Werke finden. (z.B. Schilderwald wird zu einem Bild aus Schildern in einem Wald). Künstlerische Ambition und Botschaft: Kirsten Klöckner zeigt durch ihre Kunst eine klare Botschaft und Ambition. Ihre Werke sind nicht nur ästhetisch ansprechend, sondern dienen auch als Medium, um ihre persönlichen Überzeugungen und Gedanken zu verschiedenen Themen auszudrücken. Sie fordert die Betrachter dazu auf, über gesellschaftliche Fragen, Naturverbundenheit und das menschliche Dasein nachzudenken. Ihre Kunst regt Diskussionen und Reflexionen an und zeigt, dass sie als Künstlerin eine Botschafterin für verschiedenste Anliegen ist.