bbimg.dll Problem

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

blitzatius

Betreff: bbimg.dll Problem

BeitragSo, Mai 13, 2007 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Servus,
mein Code meckert bei der Stelle:
Code: [AUSKLAPPEN]
result = SavePNGFile(filename$, bank, interlace, width, height)


Hier der komplette Code:
Code: [AUSKLAPPEN]
lib:Int =  LoadLibraryA("bbimg.dll")


Global SaveJPEGFile:Int(filename$z, imageBank, quality%, width%, height%) = GetProcAddress(lib,"_SaveJPEGFile@20")
Global SavePNGFile:Int(filename$z, imageBank, interlace%, width%, height%) = GetProcAddress(lib,"_SavePNGFile@20")

img:TImage = LoadImage("img.jpg")

Print SaveImageaspng("sfsf.png",img)

Function SaveImageAsJPEG(filename$, image:TImage, quality = 75)
   Local i, x, y, width, height
   Local buffer, bank
   Local c
   Local result
   
   width = ImageWidth(image)
   
   height = ImageHeight(image)
   pix = LockImage(image)
   bank = CreateBank(width * height * 3 + 1)
   
   For y = 0 To height - 1
      For x = 0 To width - 1
         c = ReadPixel(pix,x, y)
         c = ((c And $FF) Shl 16) Or (c And $FF00) Or ((c And $FF0000) Shr 16)

         PokeInt(bank, i, c)
         
         i = i + 3
      Next
   Next
   
   result = SaveJPEGFile(filename$, bank, quality, width, height)
   Print result
   UnlockImage(image)

   
   Return result
End Function

Function SaveImageAsPNG(filename$, image:TImage, interlace = 0)
   Local i, x, y, width, height
   Local buffer, bank
   Local c
   Local result
   
   width = ImageWidth(image)
   height = ImageHeight(image)
   pix:TPixmap = LockImage(image)
   
   bank = CreateBank(width * height * 3 + 1)

   For y = 0 To height - 1
      For x = 0 To width - 1
         c = ReadPixel(pix,x, y)
         c = ((c And $FF) Shl 16) Or (c And $FF00) Or ((c And $FF0000) Shr 16)

         PokeInt(bank, i, c)
         
         i = i + 3
      Next
   Next

   result = SavePNGFile(filename$, bank, interlace, width, height)

   UnlockImage(img)
   Return result
End Function

Hat einer ne Ahnung, wo der Fehler liegt?

Achja, der Code ist von hier. Wollte es nach Blitzmax konvertieren.
 

klepto2

BeitragSo, Mai 13, 2007 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Leider kann ich dir nicht sagen wo der Fehler liegt, aber vielleicht kannst du dir viel arbeit sparen in dem du die Blitzmax befehle:
SavePixmapPNG() und SavePixmapJPEG() nimmst. Dafür musst du in deinem Code bei Framework einsatz natürlich brl.pngloader und brl.jpgloade einbauen.
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu
 

blitzatius

BeitragSo, Mai 13, 2007 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann SavePixmapJpeg() nicht verwenden, weil das noch buggy ist. Die Bilder, die damit erstellt werden, sind fehlerhaft im internetbrowser. oder wurde der fehler schon behoben?
 

Dreamora

BeitragSo, Mai 13, 2007 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
sollte eigentlich schon lange
Probleme hat man höchstens wenn man veraltete IE versionen oder veraltete Mozilla abarten nutzt, weil deren handling selbst auch buggy ist.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Suco-X

Betreff: .....

BeitragDi, Mai 15, 2007 11:45
Antworten mit Zitat
Benutzer-Profile anzeigen
bbimg.dll ist nur ein Wrapper für BlitzBasic und war nur nötig, weil BlitzBasic einfach keinen richtigen Umgang mit Pointern anbieten konnte BlitzMax kann mit Pointern umgehen und die Benutzung dieser DLL ist einfach nur ein Schritt zurück.
Schau dir mal dieses Modul http://www.blitzbasic.com/Comm...opic=69387 an oder benutz die BlitzMax eigenen Speicherfunktionen.
Mfg
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group