Newsgroup: it.comp.lang.delphi
Titolo: Printer e Jpg

ti crei un tbitmap al volo e ci stretchi la tua jpg cosě la procedura di
stampa č sempre la stessa e stampa solo bitmap :)
ciaoux

Salve a tutto il ng.
Sto costruendo una piccola applicazione che sfrutta l'oggetto Printer per
stampare.
Per inserire un piccolo logo in alto a sinistra ho pensato di usare
l'oggetto TPicture per caricarlo e poi il metodo StretchDraw del canvas di
Printer per stamparlo nella posizione e con le dimensioni desiderate.
Tutto bello se il logo è un file bmp, meno bello se il logo è un file jpg.
In particolare, se faccio due stampe di seguito (cioè senza chiudere
l'applicazione) mi si blocca l'intero sistema.
Da prove fatte, il problema è legato alla mia macchina ed al formato del
file: posso ammettere di aver una macchina "scassata" ed "incasinata", però
il formato è un vincolo abbastanza forte per me (il file jpg è 80% in meno
di quello bmp).
Dare per buono il codice adducendo i risultati pessimi alla mia macchina è
poco professionale: qualcuno sa suggerirmi qualche alternativa per stampare
jpg sfruttando delphi e Printer: TPrinter ?
Grazie 1000 e più.
Andrea


Non ci siamo.
Io uso Printer.Canvas.StretchDraw( aRect, aGraphic.Graphic) : funziona se
uso aGraphic: TPicture e carico le immagini con LoadFromFile e si arrangia
lui a capire che tipo (bmp e jpg).
Il problema è quando il file è jpg.
Ho provato come dici, aBmp: TBitmap, però non riesco a passargli l'immagine
da aPicture: non funziona Draw, nè DrawStretch, nè CopyRect.
Presumo che quello che dici di fare sia questo in modo da usare
Printer.Canvas.StretchDraw( aRect, aBmp )
Giusto ?
Andrea

fai questa prova
metti una TImage sulla form e caricaci dentro (sempre a design time) una
jpeg
metti accanto una paintbox
e un tbutton
con sull'onclick il seguente codice
procedure TForm1.Button1Click(Sender: TObject);
var
   pippo : TBitmap;
begin
   pippo := TBitmap.Create;
   pippo.Assign(image1.Picture);
   PaintBox1.Canvas.StretchDraw(paintbox1.canvas.ClipRect, pippo);
   pippo.free
end;
quello che fai con il paintbox lo puoi fare anche con l'oggetto printer
Fammi sapere se hai capito e se ti funziona
CIAOUX

 ha scritto nel messaggio
news:amfag9$dnh$1...@newsreader.mailgate.org...

Probabilmente la mia macchina ha grossi problemi: una stupidata (con tutto
rispetto, eh ?) come questa me l'ha mandata in crisi.
La proverò e ti farò sapere, magari in privato...
Grazie

 >
Proverò.
Grazie.
Andrea

a me non ha dato problemi
che SO usi?


Sono riuscito ed il risultato è ... che non posso assegnare una Picture ad
un Bitmap.
'azzolina, che sbaglio ?
Ho un Win98SE, però ti dico che, navigando, se entro in un sito con
animazioni flash spesso e volentieri si impianta tutto.
Temo per la mia scheda.
Che ne dici ?
Grazie.
Andrea

Io ho Win2k e D6
te che delphi usi?
anche se quello che ti ho scritto non dovrebbe variare da versioni vecchie a
D6....
quello che ti ha scritto dejan comunque dovrebbe essere equivalente....

 ha scritto nel messaggio
news:amffoe$ief$1...@newsreader.mailgate.org...

io uso ancora D4
Non so cosa dire.
Mettendo pippo.assign(image.picture.graphic) funziona tutto .... ma nel TUO
ESEMPIO.
Riportato nella mia applicazione, stampa la prima  ma si blocca alla
ristampa.
Mi viene voglia di piangere :'(((((((((((((((((
Andrea

non capisco ma prova a salvare l'immagine su un file bmp e poi a ricaricarla
e stamparla
messa così è come il primo caso per te e non dovrebbe schiantarsi


Se salvo l'immagine come bmp, allora torno al punto di partenza di avere un
file bestialmente grande per pochi dati: io speravo di riuscire ad usare
file jpg proprio per non dovermi portare dietro tanto materiale "inutile".
io non mi arrendo .... ;-))))))))))))))
Ciao