lunedì 29 settembre 2025

Angular Material ERROR RuntimeError: NG01350: ngModel cannot be used to register form controls with a parent formGroup directive. Try using formGroup's partner directive "formControlName" instead. Example typeScript

 

error ng-model

Durante la scrittura del codice in Angular Material e TypeScript, può capitare di visualizzare l'errore: 

"ERROR RuntimeError: NG01350: 

    ngModel cannot be used to register form controls with a parent formGroup directive.  Try using

    formGroup's partner directive "formControlName" instead.  Example ",  quando si usa "NgModel".

Per risolvere tale problema, nella parte "html" del controllo,  prima della dichiarazione "NgModel" inserire il seguente valore:


 [ngModelOptions]="{standalonetrue}"

Di seguito l'esempio per il controllo "checkbox".

 <mat-checkbox

                                         [ngModelOptions]="{standalone: true}"

 


strumento online gratuito per effetto ghibli o anime

 

strumento online effetto ghibli

Sono pochi i siti gratuiti che permettono senza registrazione e senza lasciare email, di applicare alle immagini alcuni effetti grafici, quali Ghibli o anime.

Il seguente sito https://remaker.ai/ai-filter/studio-ghibli-filter/ permette di applicare l'effetto Ghibli, mentre il seguente sito https://remaker.ai/ai-anime-generator/ effetto Anime.

Siti facilmente utilizzabili.


domenica 28 settembre 2025

C# applicare effetto mosaico ad un’immagine a colori con .Net 9

C# effetto mosaico


In questo esempio di codice nel linguaggio di programmazione C#, vediamo come applicare ad un’immagine a colori l’effetto mosaico.

Il frammento di codice utilizza la versione 9 di .Net,   in un progetto di tipo “Windows Application”.

Dopo aver aggiunto lo spazio dei nomi “System.Drawing”, aggiungere nella form, una funzione per applicare il colore medio dell’effetto mosaico.

Di seguito il frammento di codice delle suddette operazioni.


C#

//funzione per il calcolo del colore medio

 private static Color GetColoreMedio(Bitmap image, int startX, int startY, int size)

 {

     int endX = Math.Min(startX + size, image.Width);

     int endY = Math.Min(startY + size, image.Height);

     int r = 0, g = 0, b = 0, count = 0;

 

     for (int y = startY; y < endY; y++)

     {

         for (int x = startX; x < endX; x++)

         {

             Color pixelColor = image.GetPixel(x, y);

             r += pixelColor.R;

             g += pixelColor.G;

             b += pixelColor.B;

             count++;

         }

     }

 

     // Calcola il colore medio

     return Color.FromArgb(r / count, g / count, b / count);

 }



 Di seguito la funzione per applicare l’effetto mosaico all’immagine.

C#

public static void EffettoMosaico(string inputImagePath, string outputImagePath, int mosaicSize)

 {

     try

     {

         Bitmap immagineOriginale = new Bitmap(inputImagePath);

         Bitmap nuovaImmagineEffettoMosaico = new Bitmap(immagineOriginale.Width, immagineOriginale.Height);

 

         for (int y = 0; y < immagineOriginale.Height; y += mosaicSize)

         {

             for (int x = 0; x < immagineOriginale.Width; x += mosaicSize)

             {

                 // Effettua il calcolo del colore medio del quadrato

                 Color averageColor = GetColoreMedio(immagineOriginale, x, y, mosaicSize);

 

                 //Disegna il quadrato colorato sull'immagine finale

                 using (Graphics g = Graphics.FromImage(nuovaImmagineEffettoMosaico))

                 {

                     g.FillRectangle(new SolidBrush(averageColor), x, y, mosaicSize, mosaicSize);

                 }

             }

         }

 

         // Salva l'immagine finale

         nuovaImmagineEffettoMosaico.Save(outputImagePath, System.Drawing.Imaging.ImageFormat.Jpeg);

         //Libera la memoria

         immagineOriginale.Dispose();

         nuovaImmagineEffettoMosaico.Dispose();

 

         MessageBox.Show("Effetto mosaico applicato con successo!");

     }

     catch (Exception ex)

     {

         MessageBox.Show("Errore nell'applicazione dell'effetto mosaico: " + ex.Message);

     }

 }




Di seguito il frammento di codice per invocare la funzione precedente.



C#

private void BtnEffettoMosaico_Click(object sender, EventArgs e)

{

    string immagineOriginale = "C:\\varie\\faro.jpg";

    string nuovaImmagine = "C:\\varie\\faroMosaico.jpg";

    // Chiama la funzione per convertire l'immagine, il 10 è la grandezza del mosaico

    EffettoMosaico(immagineOriginale, nuovaImmagine, 10);

}

sabato 27 settembre 2025

C# trasformare un’immagine a colori con effetto goccioline .Net 9

 

C# effetto goccioline su immagine

In questo esempio di codice del linguaggio di programmazione C#, vedremo come applicare ad un’immagine a colori, l’effetto goccioline, utilizzando la versione 9 di .Net ed in un progetto di tipo Windows Application.

L’effetto finale sarĂ  come nell’immagine precedente.

Aggiungiamo lo spazio dei nome System.Drawing nel progetto.


Di seguito la funzione per applicare l’effetto goccioline ad un’immagine, che tramite commenti viene spiegata la tecnica usata.


C#

public static void effettoPioggia(string inputImagePath, string outputImagePath)

{

    try

    {

        Bitmap immagineOriginale = new Bitmap(inputImagePath);

        Bitmap nuovaImmagine = new Bitmap(immagineOriginale.Width, immagineOriginale.Height);

 

        using (Graphics g = Graphics.FromImage(nuovaImmagine))

        {

            // Disegna l'immagine originale

            g.DrawImage(immagineOriginale, 0, 0, immagineOriginale.Width, immagineOriginale.Height);

 

            //Crea un pennello per le goccioline

            Brush dropletBrush = new SolidBrush(Color.FromArgb(100, 0, 0, 255)); // Goccioline blu semitrasparenti

 

            //Disegna goccioline in posizioni casuali

            Random rand = new Random();

            for (int i = 0; i < 50; i++) //Numero delle goccioline (modificare per piĂą o meno)

            {

                int x = rand.Next(0, immagineOriginale.Width);

                int y = rand.Next(0, immagineOriginale.Height);

                int size = rand.Next(5, 20); // Grandezza casuale delle goccioline

                g.FillEllipse(dropletBrush, x, y, size, size);

            }

        }

 

        //Salvo la nuova immagine

        nuovaImmagine.Save(outputImagePath, ImageFormat.Png);

        //Libero la memoria

        immagineOriginale.Dispose();

        nuovaImmagine.Dispose();

 

        MessageBox.Show("Creata immagine con effetto goccioline");

    }

    catch (Exception ex)

    {

        MessageBox.Show("Errore nell'applicazione dell'effetto goccioline: " + ex.Message);

    }

}


Di seguito l’esempio di codice per richiamare la funzione.


C#

private void BtnEffettoGoccioline_Click(object sender, EventArgs e)

{

    string immagineOriginale = "C:\\varie\\faro.jpg";

    string nuovaImmagine = "C:\\varie\\faroGoccioline.jpg";

    // Chiama la funzione per convertire l'immagine

    effettoPioggia(immagineOriginale, nuovaImmagine);

}





venerdì 26 settembre 2025

C# trasformare un file immagine a colori, con effetto acqua .Net

 

c# effetto acqua


Tramite il linguaggio di programmazione C#, e le classi dello spazio dei nomi System.Drawing, possiamo applicare alcuni effetti alle immagini a colori.

In particolare, in questo frammento di codice, viene illustrata la tecnica per applicare l’effetto acqua, ossia onde, ad un’immagine a colori.


Di seguito si riporta la funzione per genere tale effetto.



C#

public static void effettoAcqua(string inputImagePath, string outputImagePath)

 {

     try

     {

         Bitmap immagineOriginale = new Bitmap(inputImagePath);

         Bitmap immagineEffettoAcqua = new Bitmap(immagineOriginale.Width, immagineOriginale.Height);

 

         // Applica effetto sfocatura

               

         using (Graphics g = Graphics.FromImage(immagineEffettoAcqua))

         {

             g.DrawImage(immagineOriginale, 0, 0, immagineOriginale.Width, immagineOriginale.Height);

                    

         }

 

         // Crea onde sull'immagine

         for (int y = 0; y < immagineEffettoAcqua.Height; y++)

         {

             for (int x = 0; x < immagineEffettoAcqua.Width; x++)

             {

                 // Calcola la distorsione per l'effetto onde

                 //Modificando il valore viene intensificato l'effetto

                 int offsetX = (int)(10 * Math.Sin(y / 10.0));

                 int newX = x + offsetX;

 

                 if (newX >= 0 && newX < immagineEffettoAcqua.Width)

                 {

                     Color pixelColor = immagineEffettoAcqua.GetPixel(newX, y);

                     immagineEffettoAcqua.SetPixel(x, y, pixelColor);

                 }

             }

         }

 

         //Salvo la nuova immagine

         immagineEffettoAcqua.Save(outputImagePath, ImageFormat.Jpeg);

         //libero la memoria

         immagineOriginale.Dispose();

         immagineEffettoAcqua.Dispose();

 

         MessageBox.Show("Effetto acqua applicato con successo");

     }

     catch (Exception ex)

     {

         MessageBox.Show("Errore: " + ex.Message);

     }

 }



Di seguito il frammento di codice per richiamare la funzione.


C#

private void BtnEffettoAcqua_Click(object sender, EventArgs e)

{

    string immagineOriginale = "C:\\varie\\faro.jpg";

    string nuovaImmagine = "C:\\varie\\faroAcqua.jpg";

    //Chiama la funzione per convertire l'immagine con effetto acqua

    effettoAcqua(immagineOriginale, nuovaImmagine);

}