[ Igor Kovačević @ 03.07.2004. 17:50 ] @
sve ide odlično: učitam sliku i kad kliknem na gumb on joj promijeni veličinu (sve je odlino, čak sam napravio da bude u omjeru) ali kad želim tu sliku sačuvat onda mi se sačuva on slika koju sam učitao .. znači ako sam učitao sliku od 600x600 ona mi se neće spremit kao 100x100 (iako joj u programu promijenim veličinu) nego se ponovno sprema kao 600x600...
Kako da riješim taj problem?

Hvala!
[ bancika @ 04.07.2004. 18:54 ] @
a kako ti menjas velicinu?
ako radis samo sa promenom svojstva Width i Height to ne moze, to je samo promena velicine za prikaz, u memoriji je i dalje ista. Ako ne ne mogu da ti pomognem :)
PS ako je prvi slucaj kazi pa da ti posaljem kod kako se to radi
[ Igor Kovačević @ 04.07.2004. 21:58 ] @
Da, ja sam radio sa Width i Height ali sam shvatio i sam da to ne ide.. a nisam imao ideje šta dalje pokušati..

Ako možeš pošalji kod.

Hvala!
[ bancika @ 05.07.2004. 00:45 ] @
imam, ali funkcionise samo za JPG, ako hoces ovako, konverujes u jpg, resizujes i onda vratis u bitmap.
evo koda:

Code:

unit JpegConv;

interface 

uses Windows, Graphics, SysUtils, Classes; 

procedure CreateThumbnail(InStream, OutStream: TStream; 
  Width, Height: Integer; FillColor: TColor=clWhite); overload;
procedure CreateThumbnail(const InFileName, OutFileName: string; 
  Width, Height: Integer; FillColor: TColor=clWhite); overload; 

implementation 

uses Jpeg; 

procedure CreateThumbnail(InStream, OutStream: TStream; 
  Width, Height: Integer; FillColor: TColor=clWhite); 
var 
  JpegImage: TJpegImage; 
  Bitmap: TBitmap; 
  Ratio: Double; 
  ARect: TRect; 
  AHeight, AHeightOffset: Integer; 
  AWidth, AWidthOffset: Integer; 
begin 
//  Check for invalid parameters 
  if Width<1 then 
    raise Exception.Create('Invalid Width'); 
  if Height<1 then 
    raise Exception.Create('Invalid Height'); 
  JpegImage:=TJpegImage.Create; 
  try 
//  Load the image 
    JpegImage.LoadFromStream(InStream); 
// Create bitmap, and calculate parameters 
    Bitmap:=TBitmap.Create; 
    try 
      Ratio:=JpegImage.Width/JpegImage.Height; 
      if Ratio>1 then 
      begin 
        AHeight:=Round(Width/Ratio); 
        AHeightOffset:=(Height-AHeight) div 2; 
        AWidth:=Width; 
        AWidthOffset:=0; 
      end 
      else 
      begin 
        AWidth:=Round(Height*Ratio); 
        AWidthOffset:=(Width-AWidth) div 2; 
        AHeight:=Height; 
        AHeightOffset:=0; 
      end; 
      Bitmap.Width:=Width; 
      Bitmap.Height:=Height; 
      Bitmap.Canvas.Brush.Color:=FillColor; 
      Bitmap.Canvas.FillRect(Rect(0,0,Width,Height)); 
// StretchDraw original image 
      ARect:=Rect(AWidthOffset,AHeightOffset,AWidth+AWidthOffset,AHeight+AHeightOffset); 
      Bitmap.Canvas.StretchDraw(ARect,JpegImage); 
// Assign back to the Jpeg, and save to the file 
      JpegImage.Assign(Bitmap); 
      JpegImage.SaveToStream(OutStream); 
    finally 
      Bitmap.Free; 
    end; 
  finally 
    JpegImage.Free; 
  end; 
end; 

procedure CreateThumbnail(const InFileName, OutFileName: string; 
  Width, Height: Integer; FillColor: TColor=clWhite); overload; 
var 
  InStream, OutStream: TFileStream; 
begin 
  InStream:=TFileStream.Create(InFileName,fmOpenRead); 
  try 
    OutStream:=TFileStream.Create(OutFileName,fmOpenWrite or fmCreate); 
    try 
      CreateThumbnail(InStream,OutStream,Width,Height,FillColor); 
    finally 
      OutStream.Free; 
    end; 
  finally 
    InStream.Free; 
  end; 
end; 

end. 

[ Igor Kovačević @ 05.07.2004. 14:27 ] @
Ma to legendo, živio 100 godina!!!

Pozdrav!