Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#11

AW: signed and unsigned types

  Alt 21. Mär 2019, 11:29
Und nochmal:
Delphi-Quellcode:
// :
Buf[dx, dy] and 4278190080
Das ergibt IMMER 0 Sicher das du das willst?
Ich versteh was du meinst.

Der Original source..
Wo es geht muss ich mich daran halten von den Datentypen mal abgesehen.
DatenTyp dafür ist Buf() As Long


Code:
        For y = 0 To h
            For x = 0 To w
                cx = x / s - o
                cy = y / h - 0.5

                r = Sqr(cx * cx + cy * cy)

                dx = (cx + o + 0.01 * cx * ((r - 1) / 0.5)) * s
                dy = (cy + 0.5 + 0.01 * cy * ((r - 1) / 0.5)) * h

                a = (((Buf(dx, dy) And &HFF000000) \ &H1000000) And &HFF&) - d

                If a < 0 Then
                    a = 0
                End If
               
                c = Buf(dx, dy) And &HFFFFFF

                If a > 127 Then
                    imgSpectrumData(x, y) = c Or ((a - 256) * &H1000000)
                Else
                    imgSpectrumData(x, y) = c Or (a * &H1000000)
                End If
            Next
        Next
Und ja ich habe das Problem das ich nicht über 0 hinwegkomme.

Ich erstelle ein leeres Image
Delphi-Quellcode:
  if GDIP_CreateBitmapFromScan0(w, rc.Bottom, w * 4, PixelFormat32bppARGB,
    PByte(imgSpectrumData[0, 0]), imgSpectrum) <> OK then
  begin
    MessageBox(0, 'Error create GDI+ bitmap', nil, 0);
    SendMessage(MainHandle, WM_DESTROY, 0, 0);
    exit;
  end;
imgSpectrumData ist als Byte definiert.. genauso wie das Array für den Buf.
Da ich aber einen Pointer übergeben muss caste ich das Byte zu PByte könnte auch Pointer nehmen.

Das imgSpectrumData ist leer und wird seltsamerweise auch nicht gefüllt das verursacht meine ganzen Probleme.

&HFF& sieht seltsam aus ist aber in DEZ 255 und in VB als Long definiert deshalb der Anhang hinter &HFF&

gruss

Geändert von EWeiss (21. Mär 2019 um 11:33 Uhr)
  Mit Zitat antworten Zitat