ReadPixel / WritePixel - Flags wegen Rückständen?
Übersicht

![]() |
ThorstenBetreff: ReadPixel / WritePixel - Flags wegen Rückständen? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo, ich habe ein Problem mit einer selbstgeschriebenen Funktion, die Images um einen vorgegebenen Grad verzerren soll.
i ist dabei die Zählvariable die die Höhe des Images von oben nach unten abläuft; k geht bei jedem Durchlauf von links nach rechts, liest jedes Pixel aus dem Stammimage aus und kopiert es dann um "grad" nach rechts. Grundlegend funktioniert es auch einwandfrei; jedoch habe ich teilweise auf Bildern (alle mit PNG Transparenz) Rückständen, woher mögen die wohl kommen? Muss ich bestimmte Flags setzen? Ich lade in ein paar Minuten ein Beispiel hoch, wie das ganze aussieht. Danke schonmal für eure Aufmerksamkeit. Code: [AUSKLAPPEN] Function shiftImage:TImage(img:TImage, grad:Int)
Local i:Int Local k:Int Local img2:TImage = CreateImage(img.width + grad, img.height) Local pixmap:TPixmap = LockImage(img) Local pixmap2:TPixmap = LockImage(img2) For i = 0 To img.height - 1 If i <= grad For k = 0 To img.width - 1 WritePixel(pixmap2, (grad - i) + k, i, ReadPixel(pixmap, k, i)) Next Else For k = 0 To img.width - 1 WritePixel(pixmap2, k, i, ReadPixel(pixmap, k, i)) Next EndIf Next UnlockImage(img) UnlockImage(img2) Return img2 End Function |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Probier' es mal mit pixmap2.ClearPixels( argb ) und einem auffälligen Farbwert, ob deine Routine danach wirklich alle Pixel ersetzt.
"To img.height - 1" ist äquivalent zu "Until img.height" |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, das Problem bei dem drehen der Pixel ist halt, das es ungenauigkeiten gibt, und die werte meinstens auf oder abgerundet werden (x und y Position), kommen die Rückstände zustande.. Warum benutz du denn nicht SetRotation ?
mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich drehe das Bild nicht, ich verschiebe die Pixel horizontal.
Edit : ClearPixels funktioniert wunderbar, dankeschön ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group