Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
Benutzeravatar
Eugeny Lutsenko
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Fr, 15. Mai 2020 16:16
Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Eugeny Lutsenko »

hi!

Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert Funktion bmp2bmp () nicht mehr. Schreibt, dass der xbP-Prozess von pressSpace nicht verfügbar ist. Sie wissen nicht, was zu tun ist? Ich brauchte diese Funktion, um Bilder auf einen kleinen Bildschirm zu skalieren. Einige Benutzer brauchen es
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Manfred »

das ist aber keine pure xbase++ Funktion?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Jan »

Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Eugeny Lutsenko
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Fr, 15. Mai 2020 16:16
Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Eugeny Lutsenko »

Manfred!

Jetzt habe ich eine solche Funktion in Alaska-2.0 nicht gefunden. Aber in 1.9 habe ich es benutzt. Neben Alaska-1.9 habe ich noch Roger Donneys Eispress++ und Boris Borzik xb2net verwendet. In Express ist diese Funktion auch nicht.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Manfred »

au backe..... wo habe ich die denn ausgegraben? :roll:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Eugeny Lutsenko
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Fr, 15. Mai 2020 16:16
Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Eugeny Lutsenko »

Gefunden in einigen Beispielen. Alles hat funktioniert. Und jetzt funktioniert, wenn Sie nicht skalieren müssen. Eigentlich habe ich eine Frage, wie man jetzt ein Bild mit großer Dimension skaliert, um es auf einem Bildschirm mit niedriger Auflösung anzuzeigen. Hier ist der vollständige Text des hauptmoduls des Eidos-Systems: http://lc.kubagro.ru/__AIDOS-X.txt. es kann direkt gesucht werden: bmp2bmp.

Hier habe ich gefunden, wo ich es gefunden habe:
http://bb.donnay-software.com/donnay/se ... d%5B0%5D=2
Zuletzt geändert von Eugeny Lutsenko am Mi, 16. Dez 2020 16:58, insgesamt 1-mal geändert.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Manfred »

was aber meine Eingangsbehauptung nicht widerlegt. Es ist keine xbase++ Funktion.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Eugeny Lutsenko
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Fr, 15. Mai 2020 16:16
Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Eugeny Lutsenko »

Ja, anscheinend ist es so. In Alaska-2.0 gibt es keine bmp2bmp () - Funktion. Aber in Express++ habe ich kein Programm gefunden, das diese Funktion verwendet. Aber es wurde im Forum von Roger Donney diskutiert. Es ist wichtig für mich zu wissen, wie ich auf diese Funktion zum Zoomen von Bildern verzichten kann. Ist es möglich, dies mit den Mitteln von Alaska-2.0 zu tun?

Hier habe ich gefunden, wo ich es gefunden habe:
http://bb.donnay-software.com/donnay/se ... d%5B0%5D=2

Code: Alles auswählen

#include "Xbp.ch"
#include "Gra.ch"

PROCEDURE Appsys
RETURN

PROCEDURE Main(cFile)
LOCAL oBMP
LOCAL aSize
LOCAL oBild

   IF EMPTY(cFile)
      Msgbox("need BMP / JPG / PNG file","Error no file")
      QUIT
   ENDIF

   FERASE("B1366x768.JPG")
   FERASE("B1366x699.JPG")
   FERASE("B640x480.JPG" )

   oBMP  := XbpBitmap():new():create()
   oBMP:loadFile(cFile)

   aSize := {1366,768}
   oBild := BMP2BMP2( oBMP, aSize )
   oBild:saveFile( "B1366x768.JPG",XBPBMP_FORMAT_JPG)

   aSize := {1366,699}
   oBild := BMP2BMP2( oBMP, aSize )
   oBild:saveFile( "B1366x699.JPG",XBPBMP_FORMAT_JPG)

   aSize := {640,480}
   oBild := BMP2BMP2( oBMP, aSize )
   oBild:saveFile( "B640x480.JPG" ,XBPBMP_FORMAT_JPG)

   Msgbox("ready")
   QUIT

RETURN

STATIC FUNCTION BMP2BMP2( oBMP, aIcoSize )
LOCAL oTiny
LOCAL oPS
LOCAL oRet
LOCAL nBits
LOCAL nPlanes
LOCAL nBGClr
LOCAL aRGB

  IF aIcoSize[ 2 ] > 0
      nBits    := oBMP:bits
      nPlanes  := oBMP:planes
      nBGClr   := oBMP:getDefaultBgColor()

      oPS := XBPPRESSPACE() :new()
      oTiny := XBPBITMAP():New():Create()

      IF nBGClr = 16777216
         aRGB := GraGetRGBIntensity(nBGClr)
         oTiny:transparentClr := GraMakeRGBColor(aRGB)
      ELSE
         oTiny:transparentClr := oBMP:getDefaultBgColor()
      ENDIF

      IF nBits > 1 .AND. nPlanes > 1
         oTiny:Make( aIcoSize[ 1 ], aIcoSize[ 2 ], nPlanes, nBits )
      ELSE
         oTiny:Make( aIcoSize[ 1 ], aIcoSize[ 2 ] )
      ENDIF
      oTiny:presSpace( oPS )

      IF aIcoSize[ 2 ] > oBMP:ySize
         oBMP:Draw( oPS, { 0, 0, aIcoSize[1], aIcoSize[2] },,, GRA_BLT_BBO_IGNORE )
      ELSE
         oBMP:Draw( oPS, { 0, 0, aIcoSize[1], aIcoSize[2] },,, 4  )
      ENDIF
      oRet := oTiny
   ELSE
      oRet := oBMP
   ENDIF

RETURN oRet

*
* eof
*

Code: Alles auswählen

*******************************************************************
******** Bmp-Bilder von Jimmy skalieren
*******************************************************************
STATIC FUNCTION BMP2BMP( oBMP, aIcoSize )

LOCAL oTiny
LOCAL oPS
LOCAL oRet
LOCAL nBits
LOCAL nPlanes
LOCAL nBGClr
LOCAL aRGB

  IF aIcoSize[ 2 ] > 0
      nBits    := oBMP:bits
      nPlanes  := oBMP:planes
      nBGClr   := oBMP:getDefaultBgColor()

      oPS := XBPPRESSPACE() :new()
      oTiny := XBPBITMAP():New():Create()

      IF nBGClr = 16777216
         aRGB := GraGetRGBIntensity(nBGClr)
         oTiny:transparentClr := GraMakeRGBColor(aRGB)
      ELSE
         oTiny:transparentClr := oBMP:getDefaultBgColor()
      ENDIF

      IF nBits > 1 .AND. nPlanes > 1
         oTiny:Make( aIcoSize[ 1 ], aIcoSize[ 2 ], nPlanes, nBits )
      ELSE
         oTiny:Make( aIcoSize[ 1 ], aIcoSize[ 2 ] )
      ENDIF
      oTiny:presSpace( oPS )

      IF aIcoSize[ 2 ] > oBMP:ySize
         oBMP:Draw( oPS, { 0, 0, aIcoSize[1], aIcoSize[2] },,, GRA_BLT_BBO_IGNORE )
      ELSE
         oBMP:Draw( oPS, { 0, 0, aIcoSize[1], aIcoSize[2] },,, 4  )
      ENDIF
      oRet := oTiny
   ELSE
      oRet := oBMP
   ENDIF

RETURN oRet
Unter 2.0 kompiliert dies, funktioniert aber nicht
Zuletzt geändert von Eugeny Lutsenko am Mi, 16. Dez 2020 19:10, insgesamt 3-mal geändert.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von ramses »

Zur Bildmanipulation wie Cut, Resize, Transform usw. gibt es die Open-Source DLL FreeImage. Funktioniert echt gut.
siehe: https://freeimage.sourceforge.io/
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von AUGE_OHR »

hi,
Manfred hat geschrieben: Mi, 16. Dez 2020 16:57 was aber meine Eingangsbehauptung nicht widerlegt. Es ist keine xbase++ Funktion.
die Function BMP2BMP() ist von mir aus 2008
https://www.xbaseforum.de/viewtopic.php ... 97&p=25869

du hattest 2018 ein Problem gefunden den Wolfgang korrigiert hat https://www.xbaseforum.de/viewtopic.php ... 5&p=122786

---

die Function legt ein leeres Bitmap in gewünschter Grösse an welche mit dem "Presspace" verknüpft wird.
es war die Reihenfolge die bis dahin funktionierte aber nun musste man diese Reihenfolge haben

Code: Alles auswählen

   // dann das MAKE
   oTiny:Make(aXbpSize[1], aXbpSize[2], nPlanes, nBits)
   // und so klappt das auch mit Xbase++ v2.0.437
   oTiny:PresSpace(oPS)
---

wenn man ein Image verkleinert ist das Resultat oft "ungenügend" wenn man die GRA_BLT_BBO_* Konstanten versucht.
ich hatte Eugene einen "undokumentierten" Tip mit "4" gegeben ... ob der mit der v2.x funktioniert ...

zum "manipulieren" von Image empfehle ich FreeImage. Pablo hat einen Ot4xb "Wrapper" für Xbase++
ich nutzte FreeImage zum erstellen von "Thumbs" was viel schneller ist als GDI API Function

Code: Alles auswählen

#IFDEF Use_FreeImage
               nType := FREE_GetFileType( cPath + cFile, 0 )
               FI_hBitmap1_aux := FREE_Load( nType, cPath + cFile, 0 )

               IF !EMPTY( FI_hBitmap1_aux )
                  nPicWidth := FREE_GetWidth( FI_hBitmap1_aux )
                  nPicHeight := FREE_GetHeight( FI_hBitmap1_aux )

                  clone := FREE_Clone( FI_hBitmap1_aux )
                  FREE_Unload( FI_hBitmap1_aux )

                  FI_hBitmap1 := Free_MakeThumbnail( clone, 128, TRUE )
                  FREE_Unload( clone )

                  FREE_Save( FIF_BMP, FI_hBitmap1, cThumbsFile, BMP_DEFAULT )
                  SetProperty( "THUMBSWIN", cImage, "PICTURE", cThumbsFile )
                  FREE_Unload( FI_hBitmap1 )
               ENDIF
#ELSE
gruss by OHR
Jimmy
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von ramses »

Hallo zusammen

Das FreeImage Codeschnitzel von Jimmy ist so so ziemlich nutzlos. Weil es unvollständigkeit ist es auch überhaupt in keiner Weise nutzbar.

Die angehängte PRG enthält einige wenige grundsätzliche Funktionen zur Bildbearbeitung mit FreeImage in lauffähiger benutzbarer Form.
Die enthaltenen Funktionen sind auf eine spezielle Aufgabe zugeschnitten und am Anfang kurz beschrieben.
ot4xb muss vorhanden sein.
Die DLL selbst findet sich unter: https://freeimage.sourceforge.io/
Wer Fehler findet oder weitere neue Funktionen damit schreibt darf die Erweiterungen und Erkenntnisse gerne hier mit allen Teilen.
Dateianhänge
Freeimage_tools.zip
(5.76 KiB) 208-mal heruntergeladen
Valar Morghulis

Gruss Carlo
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von brandelh »

Hallo,

ich habe auf meiner Festplatte diesen Code aus 2018, da steht was von "geht auch mit 2.0" im Kommentar:

Code: Alles auswählen

FUNCTION BMP2BMP( oBMP, aXbpSize,ltransparency)
LOCAL oHuge, oTiny, oPS, oRet, nBits, nPlanes

DEFAULT ltransparency TO .T.

IF aXbpSize[ 2 ] > 0
   oHuge := oBMP
   nBits := oBMP:bits
   nPlanes := oBMP:planes

   // erst Presspace anfordern
   oPS   := XbpPresSpace():New():Create()
   // jetzt das Bitmap Objet
   oTiny := XbpBitmap():New():Create()
   IF ltransparency  // transparentClr beachten
      oTiny:transparentClr := oBMP:transparentClr
   ENDIF

   // dann das MAKE
   oTiny:Make(aXbpSize[1], aXbpSize[2], nPlanes, nBits)
   // und so klappt das auch mit Xbase++ v2.0.437
   oTiny:PresSpace(oPS)

   //Copie and resize the huge bitmap to the small bitmap
   oHuge:Draw( oPS, { 0, 0, aXbpSize[ 1 ], aXbpSize[ 2 ] },,, GRA_BLT_BBO_IGNORE  )
   oRet := oTiny
ELSE
   oRet := oBMP
ENDIF
RETURN oRet
Ich kann nicht erkennen, woher ich die geänderte Version habe.

So wie ich das sehe war im original Code diese Zeile ohne Create()

oPS := XbpPresSpace():New():Create()

die 1.90 scheint das ignoriert zu haben, die 2.0 erkennt den falschen Objekt Status
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Jan »

In dem Forenlink, den ich oben an Pos. 3 gepostet habe, gibt es einen Code der unter 2.0 funktionieren soll. Nicht der von Manfred (der ja die Frage stellt daß das nicht klappt), sondern von Wolfgang.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Werner_Bayern »

Servus,

die Änderungen für die 2.0 waren von mir damals, 2013 https://www.xbaseforum.de/viewtopic.php ... bmp#p81754, hier meine aktuelle Version:

Code: Alles auswählen

#include "gra.ch"
#include "common.ch"
#include "xbp.ch"

FUNCTION BMP2BMP( oBMP, aXbpSize, lTransparency, nTransparenz)
******************************************************************
LOCAL oHuge, oTiny, oPS, oRet, nBits, nPlanes

default lTransparency to .t.
default nTransparenz to oBMP:transparentClr

IF aXbpSize[ 2 ] > 0
   oHuge := oBMP
   nBits := oBMP:bits
   nPlanes := oBMP:planes

   // erst Presspace anfordern
   oPS   := XbpPresSpace():New():Create()
   // jetzt das Bitmap Objekt
   oTiny := XbpBitmap():New():Create()

   IF lTransparency  // transparentClr beachten
      oTiny:transparentClr := nTransparenz
      oTiny:transparency := oBMP:transparency   // Transparenzgrad
   ENDIF

   // dann das MAKE
   oTiny:Make(aXbpSize[1], aXbpSize[2], nPlanes, nBits)
   // und so klappt das auch mit Xbase++ v2.0.437
   oTiny:PresSpace(oPS)
   oHuge:Draw( oPS, { 0, 0, aXbpSize[ 1 ], aXbpSize[ 2 ]},,,GRA_BLT_BBO_IGNORE )  // GRA_BLT_BBO_IGNORE wars! 30.08.2016
   oRet := oTiny
ELSE
   oRet := oBMP
ENDIF
RETURN oRet
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von AUGE_OHR »

ramses hat geschrieben: Do, 17. Dez 2020 8:52 Das FreeImage Codeschnitzel von Jimmy ist so so ziemlich nutzlos. Weil es unvollständigkeit ist es auch überhaupt in keiner Weise nutzbar.

Die angehängte PRG enthält einige wenige grundsätzliche Funktionen zur Bildbearbeitung mit FreeImage in lauffähiger benutzbarer Form.
nö, "dein" Code ist ALT und kennt noch kein Free_MakeThumbnail()
Pablo hat den "Wrapper" 2015 geschrieben und seit dem hat sich einiges getan aber es wurde nichts hinzugefügt.

klar kann man es auch mit FreeImage_Resize() machen aber es ist im Vergleich ca. 20% langsamer.
... aber gegenüber Xbase++ um etliches schneller "je grösser" das Image
gruss by OHR
Jimmy
Benutzeravatar
Eugeny Lutsenko
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Fr, 15. Mai 2020 16:16
Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Eugeny Lutsenko »

Werner_Bayern hat geschrieben: Do, 17. Dez 2020 11:36 Servus,

die Änderungen für die 2.0 waren von mir damals, 2013 https://www.xbaseforum.de/viewtopic.php ... bmp#p81754, hier meine aktuelle Version:

Code: Alles auswählen

#include "gra.ch"
#include "common.ch"
#include "xbp.ch"

FUNCTION BMP2BMP( oBMP, aXbpSize, lTransparency, nTransparenz)
******************************************************************
LOCAL oHuge, oTiny, oPS, oRet, nBits, nPlanes

default lTransparency to .t.
default nTransparenz to oBMP:transparentClr

IF aXbpSize[ 2 ] > 0
   oHuge := oBMP
   nBits := oBMP:bits
   nPlanes := oBMP:planes

   // erst Presspace anfordern
   oPS   := XbpPresSpace():New():Create()
   // jetzt das Bitmap Objekt
   oTiny := XbpBitmap():New():Create()

   IF lTransparency  // transparentClr beachten
      oTiny:transparentClr := nTransparenz
      oTiny:transparency := oBMP:transparency   // Transparenzgrad
   ENDIF

   // dann das MAKE
   oTiny:Make(aXbpSize[1], aXbpSize[2], nPlanes, nBits)
   // und so klappt das auch mit Xbase++ v2.0.437
   oTiny:PresSpace(oPS)
   oHuge:Draw( oPS, { 0, 0, aXbpSize[ 1 ], aXbpSize[ 2 ]},,,GRA_BLT_BBO_IGNORE )  // GRA_BLT_BBO_IGNORE wars! 30.08.2016
   oRet := oTiny
ELSE
   oRet := oBMP
ENDIF
RETURN oRet
Vielen Dank, Werner! Deine Lösung funktioniert! Ich habe die veraltete Funktion bmp2bmp() auf meinem System durch deine Option ersetzt. Vielen Dank!
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von Werner_Bayern »

Gerne. :)
es grüßt

Werner

<when the music is over, turn off the lights!>
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von ramses »

AUGE_OHR hat geschrieben: Do, 17. Dez 2020 13:09 nö, "dein" Code ist ALT und kennt noch kein Free_MakeThumbnail()
Pablo hat den "Wrapper" 2015 geschrieben und seit dem hat sich einiges getan aber es wurde nichts hinzugefügt.

klar kann man es auch mit FreeImage_Resize() machen aber es ist im Vergleich ca. 20% langsamer.
... aber gegenüber Xbase++ um etliches schneller "je grösser" das Image
Hallo Jimmy

sicher hat sich in der Bildbearbeitung sehr sehr viel getan.
hast du besseren / schnelleren Code?
Meine Rohbilder sind relativ gross 8600x5800 Pixel da wären optimierte Routinen sehr willkommen.
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Nach dem Wechsel von Alaska 1.9 nach Alaska 2.0 funktioniert bmp2bmp nicht mehr()

Beitrag von AUGE_OHR »

hi,

im Graphischen Bereich ist GIMP wohl die Open Source LIB die zum "manipulieren" am meisten bietet.
wie man die unter Xbase++ einbindet kann ich dir leider nicht sagen.

mir reicht FreeImage um Thumbsnail als Vorschau zu haben und dann die "riesigen" Handy Fotos auf Full-HD Grösse zu bringen. auch das "drehen" mache ich mit FreeImage was viel weniger "Verluste" hat als GDI Function.

Ich hatte unter Xbase++ den "Wrapper" von Pablo benutzt. nun hab ich einen "Wrapper" um den "C" Source direkt einzubinden
gruss by OHR
Jimmy
Antworten