Bonjour !
Jipété, le retour, avec ses misères...
Je suis sur un projet EFG fort sympathique, FlipReverseRotate, et comme je suis aussi sous Linux, c'est la misère. Noire...
Parce que quand on étudie un tas de trucs à la suite, la mémoire travaille en mode fifo et ce que j'ai capté il y a deux ans est depuis passé à la trappe, bien sûr.
D'où la galère.
Allez, 3 images.
D'abord brut de dézippage, juste après "Outils / Convertir un projet Delphi..." :
Classique, les rayures sur la copie. J'ai la solution (extrait) :
Ce qui est très curieux, c'est que le bouton Save me génère un fichier copié de la même taille que l'original, alors qu'il y a un byte de plus par pixel -- passerait-il à la trappe lors de l'enregistrement sans que, là aussi, "on" ne me dise rien ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 var pbS,pbD: pByte;// pour la Source et la Destination for h := 0 to Bitmap.Height-1 do begin pbS := Bitmap.RawImage.GetLineStart(h); pbD := RESULT.RawImage.GetLineStart(h); cnt := 0; idx := 0; for w := 0 to (Bitmap.Width * 3)-1 do begin pbD[idx] := pbS[w]; cnt := w+1; // pour chercher le 4e byte if ( Frac(cnt / 3) = 0 ) then begin // bourrer le 4e byte du pRGBquad de la destination, le "Reserved", qui est inclus par le widgetset gtk2 // sans demander l'avis à personne, sans informer... Faut deviner, à coups d'essais et d'échecs. inc(idx); pbD[idx]:=255; end; inc(idx); end; end;
Mais attention ! Cette magnifique copie ne s'obtient qu'en {$mode Delphi} au niveau de l'entête des unités, car si je bascule en {$mode objfpc}{$H+}, c'est la cata :
C'est quoi la différence ?
Un dernier mot : oui, je suis toujours avec mon vieux couple Laz 1.4 / Fpc 2.6.2, pour un projet Delphi 3 ça ira très bien,
Merci et bon week-end,
Partager