Offizielle Website: https://github.com/xyxiao001/vue-cropper 1. Installation:npm installiere vue-cropper oder Garn hinzufügen Vue-Cropper 2. Verwendung:Importiere VueCropper von „vue-cropper“ Richten Sie Standard exportieren { Komponenten: VueCropper } } In <vueCropper ref="Beschneider" :img="Option.img" :Ausgabegröße="Option.Größe" :Ausgabetyp="Option.Ausgabetyp" ></vueCropper> Daten(){ zurückkehren { Option:{ img: 'imgUrl', // URL oder Base64 von img Größe: 1, Ausgabetyp: "png", } } } 3. Integrierte Methoden:
Integrierte Methode : Rufen Sie das Plugin über // Holen Sie sich die Base64-Daten des Screenshots this.$refs.cropper.getCropData((data) => { // etwas tun console.log(Daten) }) // Holen Sie sich die Screenshot-Blob-Daten this.$refs.cropper.getCropBlob((data) => { // etwas tun console.log(Daten) }) 4. Verwendung:<Vorlage> <div> <el-dialog title="Bild zuschneiden" :visible.sync="show" append-to-body width="950px" center> <div Klasse="cropper-content"> <div Klasse="cropper-box"> <div Klasse="cropper"> <vue-cropper ref = "cropper": img = "option.img": outputSize = "option.outputSize": outputType = "option.outputType": info = "option.info": canscale = "option.canscale": autocropight "optimal.: autocropwith": autocropwid = "option": autocropwid = "option": autocropwid = "option": autocropwid = "option": autocropwid = "option": autocropwid = "option": autocropwid = "option": autocropwid = "option": autocropwid = "option: = "Option.Fixed": FixedNumber = "Option.FixedNumber": full = "option.full": fixedbox = "option.fixedBox": canmove = "option.canmove": canMoveBox AximgSize ": enlarge =" option.enlarge ": modus =" option.mode " @realtime =" realtime " @imgload =" imgload "> </vue-cropper> </div> <!--Untere Schaltfläche für Bedienwerkzeug--> <div Klasse="footer-btn"> <div Klasse="scope-btn"> <label class="btn" for="uploads">Wählen Sie ein Bild aus</label> <input type="file" id="uploads" style="position:absolute; clip:rect(0 0 0 0);" akzeptieren="bild/png, bild/jpeg, bild/gif, bild/jpg" @change="selectImg($event)"> <el-button size="mini" type="danger" plain icon="el-icon-zoom-in" @click="changeScale(1)">Vergrößern</el-button> <el-button size="mini" type="danger" plain icon="el-icon-zoom-out" @click="changeScale(-1)">Verkleinern</el-button> <el-button size="mini" type="danger" plain @click="rotateLeft">↺ Nach links drehen</el-button> <el-button size="mini" type="danger" plain @click="rotateRight">↻ Nach rechts drehen</el-button> </div> <div Klasse="upload-btn"> <el-button size="mini" type="success" @click="uploadImg('blob')">Bild hochladen<i class="el-icon-upload"></i></el-button> </div> </div> </div> <!--Effektbild-Vorschau--> <div Klasse="Vorschau anzeigen"> <div :style="Vorschau.div" class="Vorschau"> <img :src="vorschau.url" :style="vorschau.img"> </div> </div> </div> </el-dialog> </div> </Vorlage> <Skript> importiere { VueCropper } von 'vue-cropper' Standard exportieren { Name: "CropperImage", Komponenten: VueCropper }, Daten () { zurückkehren { anzeigen: this.visible, Name: dieser.Name, Vorschau: {}, Option: { img: '', //Adresse des zugeschnittenen Bildes outputSize: 1, //Qualität des zugeschnittenen Bildes (optional 0,1 - 1) Ausgabetyp: „jpeg“, //zuschneiden, um das Bildformat zu generieren (jpeg || png || webp) :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers ::::::::::: }; }, Requisiten: { sichtbar: Typ: Boolean, Standard: false }, Name: Typ: Zeichenfolge, Standard: '' } }, betrachten: sichtbar () { dies.zeigen = dies.sichtbar } }, Methoden: { // Initialisierungsfunktion imgLoad (msg) { }, //Bildskalierung changeScale (num) { Zahl = Zahl || 1 dies.$refs.cropper.changeScale(num) }, //Nach links drehen rotateLeft () { dies.$refs.cropper.rotateLeft() }, //Nach rechts drehen rotateRight () { dies.$refs.cropper.rotateRight() }, //Echtzeit-Vorschau-Funktion realTime (data) { this.previews = Daten }, //Wähle ein Bild aus selectImg (e) { let Datei = e.Zieldateien[0] wenn (!/\.(jpg|jpeg|png|JPG|PNG)$/.test(e.ziel.wert)) { diese.$nachricht({ Meldung: „Anforderungen an Bildtypen: jpeg, jpg, png“, Typ: „Fehler“ }); return false } //In Blob konvertieren let reader = neuer FileReader() reader.onload = (e) => { Daten lassen wenn (Typ von e.Ziel.Ergebnis === 'Objekt') { Daten = Fenster.URL.createObjectURL(neuer Blob([e.target.result])) } anders { Daten = e.Ziel.Ergebnis } diese.option.img = Daten } //In Base64 konvertieren reader.readAsDataURL(Datei) }, //Bild hochladen uploadImg (Typ) { lass _dies = dies wenn (Typ === 'Blob') { // Holen Sie sich die Screenshot-Blob-Daten this.$refs.cropper.getCropBlob(async (data) => { let formData = neue FormData(); formData.append('Datei', Daten, neues Datum().getTime() + '.png') // Rufen Sie axios zum Hochladen auf let { data: res } = await _this.$http.post(`${msBaseUrl}common-tools-web/file/upload/image`, formData) wenn (res.code === 200) { _diese.$nachricht({ Nachricht: res.desc, Typ: „Erfolg“ }); let data = res.result let imgInfo = { Name: Datenname, ID: Daten-ID, URL: Daten.URL }; _this.$emit('uploadImgSuccess', imgInfo); } anders { _diese.$nachricht({ Meldung: ,,Fehler beim Dateidienst, bitte kontaktieren Sie den Administrator!‘‘ ', Typ: „Fehler“ }) } }) } } } } </Skript> <style scoped lang="weniger"> .cropper-Inhalt { Anzeige: Flex; Anzeige: -webkit-flex; Inhalt ausrichten: Flex-Ende; .cropper-box { biegen: 1; Breite: 100 %; .cropper { Breite: automatisch; Höhe: 300px; } } .show-preview { biegen: 1; -webkit-flex: 1; Anzeige: Flex; Anzeige: -webkit-flex; Inhalt ausrichten: zentriert; .Vorschau { Überlauf: versteckt; Rand: 1px durchgezogen #67c23a; Hintergrund: #cccccc; } } } .footer-btn { Rand oben: 30px; Anzeige: Flex; Anzeige: -webkit-flex; Inhalt ausrichten: Flex-Ende; .scope-btn { Anzeige: Flex; Anzeige: -webkit-flex; Inhalt ausrichten: Abstand dazwischen; Polsterung rechts: 10px; } .upload-btn { biegen: 1; -webkit-flex: 1; Anzeige: Flex; Anzeige: -webkit-flex; Inhalt ausrichten: zentriert; } .btn { Gliederung: keine; Anzeige: Inline-Block; Zeilenhöhe: 1; Leerzeichen: Nowrap; Cursor: Zeiger; -webkit-auftritt: keines; Textausrichtung: zentriert; -webkit-box-sizing: Rahmenbox; Box-Größe: Rahmenbox; Umriss: 0; -Webkit-Übergang: 0,1 s; Übergang: 0,1 s; Schriftstärke: 500; Polsterung: 8px 15px; Schriftgröße: 12px; Rahmenradius: 3px; Farbe: #fff; Hintergrundfarbe: #409eff; Rahmenfarbe: #409eff; Rand rechts: 10px; } } </Stil> Wirkung: ZusammenfassenDieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalt auf 123WORDPRESS.COM lesen können! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung der Lösung, um den Inhalt im Container im Flex-Layout zu halten
>>: Die Aktualisierung der Seite zur Formularübermittlung springt nicht
Mehrere Unterschiede zwischen MySQL 5.x und MySQL...
Sttty ist ein gängiger Befehl zum Ändern und Druc...
1. E-Commerce-Symbole 2. Symbol Süßigkeiten 2 3. ...
Ubuntu-JDK installieren: [Link] Installieren Sie ...
1. Befehlseinführung Der Befehl chkconfig wird zu...
In diesem Artikel sehen wir uns an, wie man mit V...
Herstellen einer Verbindung mit MySQL Hier verwen...
Inhaltsverzeichnis Erstellen eines Layouts CSS-St...
01. Unendlichkeit Schriftart herunterladen 02. Ban...
In diesem Artikel wird die Installations- und Kon...
Einloggen Docker-Anmeldung Schließen Sie die Regi...
Problembeschreibung: Fehlermeldung: Ursache: com....
Inhaltsverzeichnis Szeneneinstellung Spielressour...
Inhaltsverzeichnis 1. Grundlage des Responsive-Pr...
Inhaltsverzeichnis 01 Häufige Fehler 1 02 Häufige...