Vue implementiert die Bildfrequenzwiedergabe des Karussells

Vue implementiert die Bildfrequenzwiedergabe des Karussells

In diesem Artikelbeispiel wird der spezifische Code von Vue zur Realisierung der Bildfrequenzwiedergabe des Karussells als Referenz bereitgestellt. Der spezifische Inhalt ist wie folgt

brauchen

Übergeben Sie ein Array mit Verzeichnisnamen. Lesen Sie über diesen Verzeichnisnamen alle Bilder im Dateiverzeichnis und spielen Sie sie in einer Schleife ab. Dabei entsteht der Effekt, dass jede Sekunde eine bestimmte Anzahl von Bildern abgespielt wird. Nachdem das letzte Verzeichnis abgespielt wurde, springen Sie zum ersten Verzeichnis und spielen es in einer Schleife ab.

Core: Verwenden Sie eine API von webpack require.contex, um den Dateinamen im Verzeichnis zu lesen. Wenn Sie mehr wissen möchten, können Sie es sich ansehen.

Code

HTML

<Vorlage>
 <div id="imgPlay" ref="container" :style="[Stil]">
 <img :src="imgsrc" :style="[{height:style.height,width:style.width}]">
 <div id="aber">
  <button @click="start()">Starten</button>
  <button @click="stop()">Stopp</button>
 </div>
 </div>
</Vorlage>

JavaScript

<Skript>
Standard exportieren {
 Name: "ZxImgPlay",
 Daten () {
 zurückkehren {
  Stil:[
 Breite: "50px",
 Höhe: "50px"
 ],
  Intervall: null, // Timer-ID
  flag: true, // Zeitschalter setIntervalNumber: 0, // Aktuell angezeigtes Bild subscript imgsrc: "", // Anzuzeigender Bildpfad imgUrls: [], // Alle Bildpfade frameRate: 0 // Bildrate }
 },
 berechnet: {},
 betrachten: {},
 erstellt () { },
 montiert () {
 dies.zxInit()
 },
 vorZerstören () { },

 Methoden: {
 zxInit() {
 //This.DisplayParam ist eine Menge von Dingen innerhalb des Unternehmens, und das gemischte Objekt //this.DisplayParam.frameRate ist ein Array ["Verzeichnisname 1", "Verzeichnisname 2"]
 // this.DisplayParam.imgUrls ist ein totes Bild. Wenn kein Verzeichnis vorhanden ist, wird das tote Bild verwendet. // this.DisplayParam.frameRate ist die eingehende Bildrate this.frameRate = this.DisplayParam.frameRate && (1000 / this.DisplayParam.frameRate)
  dies.imgUrls = dies.DisplayParam.imgUrls
  this.DisplayParam.imageFileName != 0 ? this.readdir(this.DisplayParam.imageFileName) : this.showImages(true)
 },

 Start () {
  wenn (dieses.flag) return
  dies.showImages()
  dieses.flag = wahr
 },

 stoppen () {
  this.flag = falsch
  Intervall löschen(dieses.Intervall)
 },

 readImages(Bilddateiname, _A) {
  dies.stopp()
  let req = require.context("@/../static/images", true, /\.(?:bmp|jpg|gif|jpeg|png)$/).keys();
  let Pfad = neuer RegExp(Bilddateiname[_A])
  req.forEach(item => {
  wenn (Pfad.Test(Element)) {
   this.imgUrls.push({ img: "@/../static/images/" + imageFileName[_A] + item.substring(item.lastIndexOf('/')) })
  }
  })
  dies.showImages()
 },
 readdir (Bilddateiname) {
  diese.imgUrls = []
  für (lass i = 0; i < Bilddateiname.Länge; i++) {
  dies.readImages(Bilddateiname, i)
  }
 },

 zeigeBilder(_B) {
  wenn (_B) this.imgUrls = this.imgUrlsSort(this.imgUrls, 'sort')
  Konsole.log(diese.imgUrls)
  dieses.Intervall = setzeIntervall(dieses.setIntervalFun, diese.FrameRate)
 },

 imgUrlsSort (ary, Schlüssel) {
  return ary.sort((a, b) => {
  sei x = a[Schlüssel];
  sei y = b[Schlüssel];
  Rückgabe ((x < y) ? -1 : (x > y) ? 1 : 0)
  })
 },

 setzeIntervalFun () {
  wenn (this.setIntervalNumber >= this.imgUrls.length) {
  this.setIntervalNumber = 0
  }
  dies.imgsrc = dies.imgUrls[diese.setIntervalNumber++].img || ''
 }
 }
}
</Skript>

Frage

Das Obige hat die Funktion erreicht, aber bisher wurden zwei Probleme gefunden

1. Der erste Parameter der require.context()-API kann keinen veränderbaren Wert, wie etwa eine Variable, verwenden, und es wird eine Warnung ausgegeben.
2. Der obige Code wird implementiert, indem die Quelle des Bildes ständig geändert wird, d. h. jedes Mal, wenn die Quelle geändert wird, wird eine HTTP-Anforderung gesendet, um das Bild abzurufen, was dazu führt, dass der Speicher nicht freigegeben wird und ständig zunimmt.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Verwenden Sie python-opencv, um das Video zu lesen und die Gesamtzahl der Videobilder und FPS zu berechnen
  • Unity3D zeigt FPS in Echtzeit basierend auf OnGUI an
  • Unity OnGUI zeigt die FPS des Spiels in Echtzeit an
  • Python liest das Video, verarbeitet es und berechnet die Bildrate fps in Echtzeit
  • So messen Sie die Anzahl der Bilder pro Sekunde (FPS) in Android
  • So berechnen Sie die Bildrate FPS von Webanimationen

<<:  So dockerisieren Sie eine Python-Django-Anwendung

>>:  Was tun, wenn Sie das ursprüngliche Passwort für MySQL auf dem MAC vergessen?

Artikel empfehlen

So entwickeln Sie eine Progressive Web App (PWA)

Inhaltsverzeichnis Überblick Erfordern URL der An...

Was ist Makefile in Linux? Wie funktioniert es?

Führen Sie Ihre Programme mit diesem praktischen ...

Implementierung von zwei Basis-Images für die Docker-Bereitstellung von Go

1. golang:neuestes Basis-Image mkdir gotest Berüh...

my.cnf (my.ini) wichtige Parameteroptimierungs-Konfigurationsanweisungen

MyISAM-Speicher-Engine Die MyISAM-Speicher-Engine...

Detaillierte Schritte zum Konfigurieren des Tomcat-Servers in IDEA 2020

Die Schritte zum Konfigurieren von Tomcat in IDEA...

So prüfen Sie, ob ein Port in LINUX belegt ist

Ich konnte nie herausfinden, ob der Port belegt i...

Die perfekte Lösung für Vue-Routing-Fallback (vue-route-manager)

Inhaltsverzeichnis Routenplaner Hintergrund Erste...

Sind die Wertebereiche von int(3) und int(10) in MySQL gleich?

Inhaltsverzeichnis Frage: Antwort: Wirklichkeit: ...

So erstellen Sie Gitlab auf CentOS6

Vorwort Das ursprüngliche Projekt wurde im öffent...

Einführung in die Verwendung von exists und except in SQL Server

Inhaltsverzeichnis 1. existiert 1.1 Beschreibung ...

Detailliertes Installations- und Deinstallationstutorial für MySQL 8.0.12

1. Installationsschritte für MySQL-Version 8.0.12...

Implementierung der IP-Adresskonfiguration in Centos7.5

1. Bevor Sie die IP-Adresse konfigurieren, verwen...

So importieren/speichern/laden/löschen Sie Bilder lokal in Docker

1. Docker importiert lokale Images Manchmal kopie...