mercoledì 30 aprile 2025

Strumento online di intelligenza artificiale per rimuovere lo sfondo dalle immagini

 


Nel caso che siamo alla ricerca di un sito per rimuovere lo sfondo dalle immagini, il sito https://www.pixelcut.ai/t/ai-image-editor?tool=removeBackground offre la funzionalità di rimozione dello sfondo dell'immagine, con l'ausilio dell'intelligenza artificiale.

Dopo aver caricato l'immagine di proprio interesse, il sito analizzerà l'immagine per rimuovere automaticamente l'immagine.

Un sito molto ben fatto e che non richiede ne indirizzo email e ne registrazione.

martedì 29 aprile 2025

Asp.net core disable CORS webapi .net

 


Nel caso che nasce l'esigenza di disabilitare la funzione di sicurezza CORS, per i servizi webapi utilizzando la tecnologia Asp.Net Core, tramite il frammento di codice qui di seguito, possiamo disabilitare i controlli di sicurezza.

Per disabilitare il CORS, nel file "Program" dove avviene l'avvio e la configurazione del servizio, impostare dopo il seguente codice, alcuni parametri di accesso al servizio.


C#

var app = builder.Build();


Codice per disabilitare CORS

C#

app.UseCors(x => x

    .AllowAnyMethod()

    .AllowAnyHeader()

    .SetIsOriginAllowed(origin => true)  

 

    .AllowCredentials());  

Si ricorda che tale operazione rende il servizio più vulnerabile e poco sicuro, analizzare lo scenario e valutarlo per dei propri test interni.

lunedì 28 aprile 2025

TypeScript personalizzare un pulsante tondo e di tipo semaforo Angular

 

TypeScript pulsante semaforo

In questo articolo vedremo come creare un pulsante nel linguaggio di programmazione TypeScript, con tecnologia Angular, per renderlo di tipo semaforico.

In particolare, si crea un pulsante che al click cambia colore e testo, con i tre valori (verdi, giallo e rosso) di un semaforo, il tutto come mostrato nella figura precedente.

Il pulsante, sarà tondo, e per ogni click cambierà colore e testo.

Dopo aver creato un nuovo progetto in Angular e TypeScript, oppure aperto un progetto esistente, scriviamo nella parte html il codice per il pulsante.


Di seguito il frammento del codice html.

HTML

 

<button id="multiStateBtn" class="stile-button">Completato</button>

Applichiamo uno stile iniziale al pulsante, oltra alla formattazione da renderlo tondo.

Di seguito il codice per il file di stile (SCSS) per formattare il pulsante.

SCSS

#multiStateBtn {

  background: green;

}

.stile-button {

  width: 80px;

  height: 80px;

  border-radius: 50%;

  overflow: hidden;

  cursor: pointer;

  border: none;

  padding: 0;

}

 

Ora non resta che scrivere il codice TypeScript per cambiare il colore ed il testo del pulsante.

Si crea un'interfaccia con due proprietà di tipo testo, che permettono di gestire il colore ed il testo.

Di seguito il codice TypeScript delle suddette operazioni.

TypeScript:

 

interface ButtonState {

  label: string;

  color: string;

}

 

Nell'evento "NgOnInit" scriviamo il codice per impostare i vari stati e gestire l'evento click del pulsante, tramite un gestore di evento,  che per ogni click cambia colore e testo.


TypeScript:

 ngOnInit(): void {

 

const btnState: ButtonState[] = [

    {

      label: 'Completato',

      color: 'green'

    },

    {

      label: 'In lavorazione',

      color: 'yellow'

    },

    {

      label: 'Annullato',

      color: 'red'

    }

  ];

   const btn = document.querySelector<HTMLButtonElement>('#multiStateBtn')!;

   let index = 1;

   btn.addEventListener('click', function() {

    if (index > 2) {

      index = 0;

    }

    btn.innerHTML = btnState[index].label;

    btn.style.backgroundColor = btnState[index].color;

    index++;

  });

 

 

 

}

 


Ora non resta che eseguire il nostro progetto, per vedere il risultato di questa implementazione.

Conclusioni

L'articolo ha voluto fornire al lettore, una tecnica per la gestione dei pulsanti. In particolare, le potenzialità offerte dalla tecnologia Angular e dal linguaggio di programmazione TypeScript, che permettono di estendere i controlli html, con funzionalità ed aspetti grafici con poco codice e semplicità.

C# la corrispondenza dei modelli, un modo per usare le condizioni

La tecnica Pattern Matching è quella di verificare una condizione e se questa viene rispettata impostare il relativo valore per il successivo utilizzo.
Una corrispondenza modelli che può tornare utile per usare il valore di una condizione nelle fasi successive del codice.

Vediamo un esempio pratico con la parola chiave IF.


C#

private void BtnPattern_Click(object sender, EventArgs e)

{

    object elemento =  "Testo di esempio";

    if (elemento is string valore)

    {

        MessageBox.Show("Il testo della condizione è:  " + valore );  //Visualizza testo di esempio

    }

}

In questo caso, la condizione viene rispettata e nella variabile denominata "valore" che è presente nella condizione, avrà come valore quello del testo.
Nel caso che invece l'oggetto era di tipo numerico, la condizione non era rispettata e quindi non visualizzava nessun messaggio a video.

Qui l'esempio
C#

private void BtnPattern_Click(object sender, EventArgs e)

 {

     //La condizione non è vera e quindi non viene visualizzato il messaggio

     object elemento = 22;// "Testo di esempio";

     if (elemento is string valore)

     {

         MessageBox.Show("Il testo della condizione è:  " + valore );  //Visualizza testo di esempio

     }

 }


Questa tecnica si può utilizzare anche con l'utilizzo di più condizioni, come nel caso della parola chiave Switch.

Di seguito un esempio con la parola chiave Switch.

C#

private void BtnPattern_Click(object sender, EventArgs e)

{

    Int32 livello = 10;

    string risultato = livello switch

    {

        5 => "Basso",

        10 => "Medio",

        15 => "Alto",

        _ => "Non definito"

    };

    MessageBox.Show(risultato); //Visualizza Medio

}



Altro utilizzo con la parola chiave Switch

C#

private void BtnPattern_Click(object sender, EventArgs e)

{

 

 

    Int32 livello = 10;

    string risultato = livello switch

    {

       < 5 => "Basso",

        >= 10 and < 15 => "Medio",

       > 15 => "Alto",

        _ => "Non definito"

    };

    MessageBox.Show(risultato); //Visualizza Medio

}