VoyForums
[ Show ]
Support VoyForums
[ Shrink ]
VoyForums Announcement: Programming and providing support for this service has been a labor of love since 1997. We are one of the few services online who values our users' privacy, and have never sold your information. We have even fought hard to defend your privacy in legal cases; however, we've done it with almost no financial support -- paying out of pocket to continue providing the service. Due to the issues imposed on us by advertisers, we also stopped hosting most ads on the forums many years ago. We hope you appreciate our efforts.

Show your support by donating any amount. (Note: We are still technically a for-profit company, so your contribution is not tax-deductible.) PayPal Acct: Feedback:

Donate to VoyForums (PayPal):

Login ] [ Contact Forum Admin ] [ Main index ] [ Post a new message ] [ Search | Check update time | Archives: 1[2]345678910 ]


[ Next Thread | Previous Thread | Next Message | Previous Message ]

Date Posted: 21:17:21 12/11/03 Thu
Author: Michel
Subject: Re: How to detect non bmp files and convert automatically to bmp grayscale in code
In reply to: Andrew Diabo 's message, "Re: How to detect non bmp files and convert automatically to bmp grayscale in code" on 03:31:14 12/09/03 Tue


Hi Andrew,

GuessDibGraphicClass returns a class type, not an object instance. The typecast,

TDibGraphic(DibClass)

is not valid because DibClass is not an object instance. You can create the object by doing,

DibGraphic := DibClass.Create;
if DibGraphic is TBitmapGraphic then
...
DibGraphic.Free;

For your purpose, you can use the TDibGraphic.CanRead class method,

ie

if TBitmapGraphic.CanRead(Stream) then
... stream is a bmp stream

Best regards,

Michel

>Hi Michel,
>
>Thanks for taking the time to respond. I'm having a
>little difficulty understanding the concept, but
>following is my attempt to do the GuessDibGraphicClass
>with no success. Can you please tell me where I went
>wrong?
>
>procedure TForm1.LoadFile( const FileName : String );
>var
> Stream: TFileStream;
> DibClass: TDibGraphicClass;
>begin
> Stream := TFileStream.Create(FileName, fmCreate);
> try
> Stream.Seek(0, soFromBeginning);
> DibClass := GuessDibGraphicClass(Stream);
> if TDibGraphic(DibClass) is TBitmapGraphic then
> Edit1.Text := 'Bitmap'
> else
> Edit1.Text := 'Not a Bitmap';
> finally
> Stream.Free;
> end;
>end;
>
>Thanks
>Andrew
>
>
>>Hi Andrew,
>>
>>You can use the function EnDiGrph.GuessDibGraphicClass
>>to determine the file format from the contents of the
>>file. If TBitmapGraphic is not returned, then it is
>>not a bitmap. You can then load the file in the
>>appropriate TDibGraphic derived class, and assign it
>>to a TBitmapGraphic to convert it. Then you can use
>>the TImageFormatTransform to convert it to grayscale.
>>
>>Best regards,
>>
>>Michel
>>

[ Next Thread | Previous Thread | Next Message | Previous Message ]

[ Contact Forum Admin ]


Forum timezone: GMT-5
VF Version: 3.00b, ConfDB:
Before posting please read our privacy policy.
VoyForums(tm) is a Free Service from Voyager Info-Systems.
Copyright © 1998-2019 Voyager Info-Systems. All Rights Reserved.