Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [AspJpeg] Difficoltà per la trasparenza

    Ho un problema nel creare un fondo trasparente per un PNG.

    Spiego a parole nel miglior modo possibile. Non credo ci sia bisogno di listati.


    Il lavoro parte da delle immagini JPG di diverse dimensioni. Le devo standardizzare ad una dimensione precisa. Es. 800x600
    Quindi ridimensiono mantenendo l'aspetto ratio. Questo non mi porta sempre alla dimensione che desidero.
    Per ovviare a ciò creo prima una immagine vuota a 800x600 a fondo bianco
    Successivamente sovrascrivo l'immagine JPG ridimensionata centrandola.
    Salvo in PNG e mi trovo l'immagine corretta ma ho i bordi bianchi. ... ovvio!

    Vorrei creare l'immagine di base trasparente e non bianca ma non riesco a farlo.
    In pratica mi serve una 800x600 trasparente dove poi sovrascrivo centrata l'immagine JPG.

    Dovrei lavorare con i livelli Alpha ma non ci ho capito granchè.

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    già consultato il manuale?
    http://www.aspjpeg.com/manual_10.html#10_3

  3. #3
    Si, certo ma non mi ha funzionato.
    Domani cercherò di capire meglio con quel l'esempio del cerchio e del quadrato.
    Non è molto chiaro.

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    da quel che ho capito dovresti fare così:
    crei l'immagine jpg 780x580
    la trasformi in png
    la incolli su una base trasparente png da 800x600

  5. #5
    Niente da fare!
    Non ci riesco!

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    ma la procedura ti pare logica? procedi per passi

    ora non ho tempo di verificare e testare ma il concetto mi pare abbastanza semplice, dovresti riuscire

  7. #7
    il problema è che devo partire da un jpg
    più tardi o lunedi metto qualche riga per commentarla

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    quindi la prima difficoltà e trasformare il jpg in png?

  9. #9
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    se è questa, lo script di base risolve (ho verificato):
    codice:
    Set Jpeg = Server.CreateObject("Persits.Jpeg")
    Jpeg.Open Server.MapPath("immaginejpg.jpg")
    
    ' Output as PNG
    Jpeg.PNGOutput = True
    
    ' Save
    Jpeg.Save Server.MapPath("immaginepng.png")

  10. #10
    FATTO!!!!
    ... non è stata una passeggiata. Nel manuale non si capisce una mazza!

    codice:
    <%
    Path="/public/"
    BaseW=800
    BaseH=600
    
    ' creo i 3 oggetti che mi serviranno
    Set JpegImg = Server.CreateObject("Persits.Jpeg") ' conterrà l'immagine JPG
    Set JpegAlpha = Server.CreateObject("Persits.Jpeg") ' conterrà il livello di trasparenza
    Set JpegFinal = Server.CreateObject("Persits.Jpeg") ' conterrà l'immagine con trasparenza
    
    JpegImg.Open Server.MapPath(Path&"test.jpg") ' carico l'immagine che devo lavorare
    JpegFinal.New BaseW, BaseH ' creo struttura per immagine finale
    
    ' inserisco l'immagine al centro delal struttura finale
    JpegFinal.Canvas.DrawImage (JpegFinal.Width - JpegImg.Width)/2, (JpegFinal.Height - JpegImg.Height)/2, JpegImg
    
    JpegAlpha.New BaseW, BaseH, &HFFFFFF ' creo il livello per la trasparenza a fondo bianco "Importante bianco"
    
    ' Calcolo le coordinate per l'area che non dovrà essere trasparente (al centro) 
    W1=(BaseW - JpegImg.Width)/2
    H1=(BaseH - JpegImg.Height)/2
    W2=W1+JpegImg.Width
    H2=H1+JpegImg.Height
    
    JpegAlpha.Canvas.DrawBar W1, H1, W2, H2 ' creo un rettangolo con le coordinate 
    JpegAlpha.ToGrayscale (0) ' applico scala di grigio
    JpegFinal.SetAlpha JpegAlpha, true ' applico la trasparenza nell'area fuori dal rettangolo (false la applica all'interno)
    
    JpegFinal.PNGOutput = True ' prepara per il salvataggio PNG
    
    JpegFinal.Save Server.MapPath(Path&"out.png") ' salva su disco 
    %>
    
    <body bgcolor="#99CC66">
    <img src="out.png">
    </body>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.