Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>React Native JPG Bearbeitung

React Native JPG Bearbeitung

trashcoder24.07.2308:35
Hallo zusammen,

kennt jemand ein Package für React Native mit dem ich Jpg pixelweise bearbeiten kann, oder mehrere jpg per Algorhythmus wie Pixel-Addition oder Pixel-Multiplikation layern kann?
0

Kommentare

ssb
ssb24.07.2310:38
Ich mag nicht stänkern - aber die Suchmaschine deiner Wahl liefert mit dem Suchbegriff "React Native Image Manipulation" sicher ähnliche Ergebnisse wie die Suchmaschine meiner Wahl. Ob die etwas taugen, kann ich nicht sagen - da ich nicht mit React arbeite.
-4
trashcoder25.07.2309:11
Lieber ssb,

die ersten 30 Ergebnisse auf Google habe ich schon durch.

Ich habe diverse React Native Librarys ausprobiert und bereits mehr als 80 Stunden investiert, um mit diversen NPM Paketen meine Idee ans Laufen zu bringen.
Wenn ich schon hier eine Frage stelle, dann nicht, damit jemand mir versucht Google zu erklären. Immerhin ist dies der Entwicklerbereich in dieses Forum. Hier kennt man sich mit der Google-Suche aus.
+3
trashcoder25.07.2309:22
Folgende Librarys habe ich schon ausprobiert:

- react-native-gcanvas - Kann nicht mit 4k-Bilder umgehen und stürzt ab
- react-native-skia - kann nicht mit dynamischem Nachladen von Bildern umgehen
- react-native-photo-manipulator - kann keine Pixel auslesen oder setzen
- react-native-image-manipulator kann keine Pixel auslesen oder setzen
- jimp - funktioniert nicht richtig in react native
- react-native-image-tools - merge() ist nicht die Berechnungsart, wie ich Images übereinanderlegen möchte
0
Nebula
Nebula25.07.2311:06
Falls ImageMagick auf dem Server installiert ist, kannst du auch das nehmen. Muss aber gestehen, dass ich nicht viel mehr über React weiß, als dass es bei Webprojekten zum Einsatz kommt. ImageMagick kann definitiv Ebenen per Addition oder Multiplikation mischen.
„»Wir werden alle sterben« – Albert Einstein“
+1
trashcoder25.07.2311:31
Hi Nebula,

ich möchte das in React Native entwickeln, also für Android und iOS. Nicht jedes Package, was in Node oder React funktioniert, läuft auch in React Native - leider. Daher kann ich auch ImageMagick nicht verwenden.

Ich möchte dies gerne ohne Server realisieren, da ich viele Photos zusammenrechnen und diese nicht per 5G an den Server schicken möchte wegen des Traffic-Volumens der Mobilfunkverträge.
0
Nebula
Nebula25.07.2312:08
Da war ich wohl auf dem falschen Pfad, ich dachte, es geht um eine Webprojekt. Kann man nicht die nativen Frameworks der Systeme gezielt ansprechen? Würde sicher zu effizienteren Apps führen.
„»Wir werden alle sterben« – Albert Einstein“
0
ssb
ssb25.07.2314:40
trashcoder
Lieber ssb,

die ersten 30 Ergebnisse auf Google habe ich schon durch.
Das hättest du durchaus erwähnen können. Woher soll jemand wissen, was du schon erfolglos probiert/evaluiert hast?

Tja - und manchmal ist native Entwicklung dann doch besser, selbst wenn man sie für iOS und Android dann zweimal machen muss.

Kannst du native Frameworks verwenden? Zur Not schreibst du dir dann eine native Bibliothek, die du von React Native aus aufrufen kannst. Eventuell ist das dann auch nur ein Wrapper für zB ImageMagick. Ich habe solche Wrapper schon für zB. Python geschrieben. Aber wie gesagt - ich habe keine Ahnung von React Native (und bereue das auch nicht). Wenn so etwas nicht möglich ist, dann ist es vielleicht die falsche Sprache für das, was du implementieren willst.
+2
trashcoder25.07.2316:10
ssb
Das hättest du durchaus erwähnen können. Woher soll jemand wissen, was du schon erfolglos probiert/evaluiert hast?
Da gebe ich dir Recht; ich hätte das erwähnen sollen.
Kannst du native Frameworks verwenden? Zur Not schreibst du dir dann eine native Bibliothek, die du von React Native aus aufrufen kannst. Eventuell ist das dann auch nur ein Wrapper für zB ImageMagick. Ich habe solche Wrapper schon für zB. Python geschrieben. Aber wie gesagt - ich habe keine Ahnung von React Native (und bereue das auch nicht). Wenn so etwas nicht möglich ist, dann ist es vielleicht die falsche Sprache für das, was du implementieren willst.
Ja, ich überlege tatsächlich eine native Library entweder selbst zu schreiben oder was vorhandenen zu wrappen.
+2
trashcoder28.07.2309:05
Habe mich noch ein wenig schlau gemacht und versuche jetzt die Lösung in Flutter zu entwickeln.
0
milk
milk28.07.2310:49
trashcoder
versuche jetzt die Lösung in Flutter zu entwickeln
Wenn du da mal nicht vom Regen in die Traufe kommst. Meiner bescheidenen Meinung nach führt bei Apps kein Weg an nativem Code vorbei.
+3
ssb
ssb28.07.2313:12
milk
Wenn du da mal nicht vom Regen in die Traufe kommst. Meiner bescheidenen Meinung nach führt bei Apps kein Weg an nativem Code vorbei.
Das dachte ich mir auch gerade.
Es gibt sinnvolle Anwendungsfälle, bei denen die diversen Cross-Plattform Umgebungen sinnvoll sind - selbst wenn sie am Ende kaum mehr bieten als eine gut gemachte Webseite. Die Apps, die zB. auf Elektron basieren, sind im Prinzip eigentlich auch nur WebViews.

Das Problem ist in der Regel, dass diese Cross-Platform Umgebungen halt immer nur das anbieten können, was auf allen unterstützen Plattformen verfügbar ist. Man kann auch darüber hinaus gehen, aber dann hat man wieder plattformabhängigen Code, also Code der nur auf macOS läuft, oder iOS oder Windows... Zudem hat man eben die teilweise sinnvolle Einschränkung, dass man auf einige native Frameworks nicht zugreifen kann oder dafür viel "Boilerplate"-Code braucht.
Am Ende hat man dann doch oft verschiedene Versionen für jede Plattform, selbst wenn sich Teile des Code auf allen ausführen lassen. Am Ende hängt es dann aber doch auch immer davon ab, was man machen möchte. Da kann es schon sinnvoll sein, viele Möglichkeiten zu evaluieren und sich dann erst zu entscheiden, wenn man den besten Kompromiss gefunden hat - sonst macht man vieles mehrfach und dann hätte man gleich mehrere native Lösungen bauen können.
+1
milk
milk28.07.2313:20
ssb
Am Ende hat man dann doch oft verschiedene Versionen für jede Plattform, selbst wenn sich Teile des Code auf allen ausführen lassen.
Stimmt. Das kann man übrigens auch haben, wenn man nativ programmiert, zum Beispiel über Kotlin Multiplatform. Wovon ich aus eigener Erfahrung übrigens auch abraten würde.
Aber dann hätte man wenigstens ein natives GUI, das die Besonderheiten der Platformen nutzen kann.
0
Nebula
Nebula28.07.2317:51
Aus Anwendersicht spricht nicht viel für Crossplatform-Frameworks. Selbst die wirklich guten Affinity-Apps sind teils etwas fremdartig auf macOS. Aber bei Weitem besser als Adobes Kram. Electron ist aus meiner Perspektive die Pest. Für Teams benötige ich ein Extra-Mikrofon, weil man mich sonst aufgrund des Lüftergesäusels kaum versteht.
„»Wir werden alle sterben« – Albert Einstein“
+2
matt.ludwig28.07.2318:06
Nebula
Selbst die wirklich guten Affinity-Apps sind teils etwas fremdartig auf macOS.

Immerhin sind sie nativ.
0
trashcoder03.08.2316:09
milk
Wenn du da mal nicht vom Regen in die Traufe kommst. Meiner bescheidenen Meinung nach führt bei Apps kein Weg an nativem Code vorbei.
Das Risiko gehe ich ein. Ich habe jetzt ein Flutter-Package das vermutlich die Lösung für meine Idee ist und ich werde das Thema damit mal ausprobieren.
0
trashcoder03.08.2316:11
ssb
Es gibt sinnvolle Anwendungsfälle, bei denen die diversen Cross-Plattform Umgebungen sinnvoll sind - selbst wenn sie am Ende kaum mehr bieten als eine gut gemachte Webseite. Die Apps, die zB. auf Elektron basieren, sind im Prinzip eigentlich auch nur WebViews.
Flutter scheint ja eben nicht ein Browser zu sein, der dem System mit einer Website eine App vorgaukelt. Aber ich bin noch am Anfang der Recherche.
0
DasFaultier03.08.2317:39
Flutter kompiliert für die entsprechenden Systeme. Da liegt kein Browser drunter. Es gibt ein paar packages die eigenen Code für die Zielplattform brauchen - generell hält sich dies aber in Grenzen. Ich habe mit Flutter mal angefangen, habe es aber zeitlich nicht weiter geschafft.
Nett ist vorallem, das man nicht bei jeder Code Änderung kompilieren braucht, sondern innerhalb weniger Sekunden die Änderungen sieht. Man braucht leider viel SSD-Speicher, das kostet bei Apple ja ein kleines Vermögen
0
ssb
ssb03.08.2318:19
DasFaultier
Flutter kompiliert für die entsprechenden Systeme. [...]
Ja, das habe ich auch gelesen - immerhin. Dafür muss man sich dann mit der DART-Programmiersprache beschäftigen, die dem Anschein nach sehr nach SWIFT aussieht. Dass da im Hintergrund ein JIT-Compiler läuft ist heutzutage keine Rocket-Science mehr - es wird aber noch immer kompiliert, aber eben bereits im Hintergrund und eventuell wird auch dynamisch gelinkt, was SWIFT im Grundsatz nicht mag - bei ObjC aber Standard ist. Da gab es diesen Ansatz bereits in einer der ersten Xcode-Versionen - wenn du etwas änderst, wird auch nur das kompiliert und durch das dynamische Linken muss man nicht einmal die App beenden um (kleinere) Änderungen gleich testen zu können - geladene Objekte werden einfach "migriert". Kann nicht nimmer klappen, aber dann doch relativ oft während man am Code arbeitet. Hieß damals glaube ich "Pause-Edit-Continue" Feature basierend auf Zero-Link und brauchte einige sehr eigenwillige Konstruktionen im Mach-O Dateiformat.
Aber genau das dürfte dann mit einer größeren Nutzung von Ressourcen einhergehen - in dem Fall war ObjC tatsächlich recht effizient.
0
trashcoder10.08.2308:42
DasFaultier
Man braucht leider viel SSD-Speicher, das kostet bei Apple ja ein kleines Vermögen
Man kann ja auf eine externe SSD oder NVME per Thunderbolt/USB auslagern
0
trashcoder10.08.2308:44
Meine ersten Schritte mit Flutter sehen sehr zuversichtlich aus. Habe auf Udemy nen Crash-Kurs gekauft, um schnell in die Syntax rein zu kommen.
0
trashcoder17.09.2312:03
Fazit: Ich habe innerhalb eines Monats Flutter soweit gelernt, dass ich meine Idee damit umsetzen konnte. Mit Flutter funktioniert die App um Welten besser als ich es jemals mit React Native hätte hinbekommen können. Die Performance der Bildnachbearbeitung ist wesentlich schneller, da Flutter die App vollständig kompiliert und nicht wie React Native mit Javascript in einer Browser-Umgebung interpretiert.
+1
milk
milk17.09.2315:13
Das ist schön zu hören.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.