[fpc-pascal] bug fpc-image

tazio mirandola devsmt at gmail.com
Sun Jul 8 22:03:39 CEST 2012


this method is working. thanks



On Sat, Jul 7, 2012 at 9:43 PM, Bernd <prof7bit at gmail.com> wrote:

> 2012/7/7 tazio mirandola <devsmt at gmail.com>
>
>> hi all,
>>
>> i'm trying to resize a jpg via fpc-image, this is the relevant
>> code(adapted from http://wiki.freepascal.org/fcl-image):
>>
>>
>
> for resizing you should use StretchDraw() from the TCanvas object:
>
>
>       ImageOriginal := TFPMemoryImage.Create(0, 0);
>       ImageOriginal.LoadFromStream(ImageStream, ImageReader);
>
>       // scale the image to 64*64
>       ImageScaled := TFPMemoryImage.Create(64, 64);
>       {$warnings off} // contains some abstract methods (must be FCL bug)
>       CanvasScaled := TFPImageCanvas.Create(ImageScaled);
>       {$warnings on}
>       CanvasScaled.StretchDraw(0, 0, 64, 64, ImageOriginal);
>
>       // now ImageScaled contains the scaled image
>       // save it and then free all the objects.
>
> There is also a complete example in the 2.7 trunk but that example
> contains a bug, it will leak memory because it does not free all objects.
>
>
>
>
>
>
>
>>
>> uses
>>   fpimage, fpcanvas, FPImgCanv,  fpreadjpeg,fpwritejpeg;
>>
>> procedure TImgResize.Resample(AFileName:string);
>> var
>>     Image : TFPCustomImage;
>>     writer : TFPCustomImageWriter;
>>     Reader : TFPReaderJPEG;
>>     Canvas : TFPCustomCanvas;
>> begin
>>   // Create an image
>>   Image := TFPMemoryImage.Create(224,150);
>>
>>   Reader := TFPReaderJPEG.Create;
>>   Image.LoadFromFile(AFileName (*, Reader*) );
>>
>>   //Image.SetSize(224,150);
>>
>>   // Attach the image to the canvas
>>   Canvas := TFPImageCanvas.Create(image);
>>
>>   // Create the writer
>>   Writer := TFPWriterJPEG.Create;
>>
>>   // Save to file
>>   Image.SetSize(224,150);
>>   Image.SaveToFile(AFileName+'b.jpg' (*, writer*) );
>>
>>   Canvas.Free;
>>   Image.Free;
>>   Writer.Free;
>> end;
>>
>> actually, Image.SetSize(224,150); causes half of the resulting image
>> being black!
>> is it a bug or am i colling it wrongly?
>>
>>
>> --
>> Tazio Mirandola
>> Consulenza Software e Web
>> Cel:348 0836782 Skype:tazio.mirandola Http://evidenceweb.it
>>
>>
>> _______________________________________________
>> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
>> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>>
>
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>



-- 


Tazio MirandolaConsulenza Software e Web

*Cel:348 0836782 Skype:tazio.mirandola
Http://evidenceweb.it<http://www.evidenceweb.it/>
*

privacy: Il trattamento dei vostri dati personali sarà improntato a liceità
e correttezza. Non è permesso divulgare anche in parte o utilizzare il
messaggio per finalità diverse o non autorizzate essendo questo messaggio
riservato e l'utilizzo consentito esclusivamente al destinatario, per le
finalità indicate e come prescritto dal D.LGS 196/2003.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20120708/fc6ecbc4/attachment.html>


More information about the fpc-pascal mailing list