Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di domk
    Registrato dal
    Sep 2006
    Messaggi
    45

    [Delphi] funzione per ridurre le dimensioni di un immagine

    Ragazzi vi chiedo se per caso conoscete una funzione o proprietà che mi permetta di ridurre le dimensioni di una immagine in modo da poterla utilizzare come anteprima. Questa funzione deve essere quindi anche di capacitò inferiori rispetto a quella iniziale. Ho provato con la proprietà "proportional" che mi riduce l'immagine in dimensione ma non in capacità...grazie in anticipo! :berto:

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    1
    Immagino che per capacità tu intenda dimensione...

    Intanto supponiamo che siano bitmap altrimenti e' un po' piu' complicato...

    Magari questo stralcio di codice ti puo dare una spinta...

    (attenzione che non l'ho provato)

    codice:
    procedure Ridimensiona(AFilename : string);
    var
      mBmpSource, mBmpDestination : Tbitmap;
    begin
      mBmpSource :=  TBitmap.Create;
      mBmpDestination :=  TBitmap.Create;
      mBmpDestination.PixelFormat := pf24bit;
      try
        mBmpSource.loadfromfile(afilename);
    
        mBmpDestination.height:= 100;
        mBmpDestination.width := 100;
    
        mBmpDestination.Canvas.StretchDraw(mBmpDestination.Canvas.ClipRect,mBmpSource);
    
        mBmpDestination.SaveToFile('tuofile.bmp'):
    
      finally
        mBmpDestination.Free;
        mBmpSource.Free;
      end;
      
    end;
    Ciao
    Massimiliano

  3. #3
    Utente di HTML.it L'avatar di domk
    Registrato dal
    Sep 2006
    Messaggi
    45
    grazie x la risposta immediata...vedo se con il tuo codice riesco a risolvere.Ti faccio sapere se tutt'ok...

    ps:xkè con le immagini jpeg è diverso?

  4. #4
    Utente di HTML.it L'avatar di domk
    Registrato dal
    Sep 2006
    Messaggi
    45
    Originariamente inviato da massi25

    codice:
    procedure Ridimensiona(AFilename : string);
    var
      mBmpSource, mBmpDestination : Tbitmap;
    begin
      mBmpSource :=  TBitmap.Create;
      mBmpDestination :=  TBitmap.Create;
      mBmpDestination.PixelFormat := pf24bit;
      try
        mBmpSource.loadfromfile(afilename);
    
        mBmpDestination.height:= 100;
        mBmpDestination.width := 100;
    
        mBmpDestination.Canvas.StretchDraw(mBmpDestination.Canvas.ClipRect,mBmpSource);
    
        mBmpDestination.SaveToFile('tuofile.bmp'):
    
      finally
        mBmpDestination.Free;
        mBmpSource.Free;
      end;
      
    end;
    Funziona...nel mio codice ho avuto bisogno solo di mBmpDestination.Canvas.StretchDraw(mBmpDestination .Canvas.ClipRect,mBmpSource);
    dove le mie immagini erano di tipo timage ed erano anche jpeg...nonostante ciò mi funziona! Allora xkè dici che con le immagini di tipo Jpeg è più complicato?Ho sbagliato qualcosa?

  5. #5
    no, va bene, se il formato è supportato dal componente puoi usare tranquillamente le funzioni di alto livello della proprietà Canvas.
    ciao
    sergio

  6. #6
    Utente di HTML.it L'avatar di domk
    Registrato dal
    Sep 2006
    Messaggi
    45
    Originariamente inviato da mondobimbi
    no, va bene, se il formato è supportato dal componente puoi usare tranquillamente le funzioni di alto livello della proprietà Canvas.
    ciao
    sergio
    grazie grazie...

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.