Bildmanipulation är en konst att transformera en bild på ett sätt som du önskar att den ska visas som, snarare än vad originalbilden visar.
I applikationer relaterade till räls måste manipulation göras samtidigt som bilden laddas upp enligt applikationens krav som bakgrund, färg och storlek, vilket skulle ge ett unikt utseende till applikationerna.
Vi kan uppnå detta genom att använda ImageMagick.
- ImageMagick är en mjukvarusvit för att skapa, redigera, komponera eller konvertera bitmappsbilder.
- Vi kan använda ImageMagick för att ändra storlek, vända, spegla, rotera, förvränga, klippa och transformera bilder, justera bildfärger, tillämpa olika specialeffekter eller rita text, linjer, polygoner, ellipser och Bézier-kurvor.
Funktioner hos ImageMagick:
- Formatkonvertering: konvertera en bild från ett format till ett annat (t.ex. PNG till JPEG).
- Omvandla: ändra storlek på, rotera, beskära, vända eller trimma en bild.
- Genomskinlighet: gör delar av en bild osynliga.
- Dra: lägg till former eller text till en bild.
- Dekorera: lägg till en ram eller ram till en bild.
- Specialeffekter: oskärpa, skärpa, tröskelvärda eller tona en bild.
- Animation: skapa en GIF-animationssekvens från en grupp bilder.
- Text & kommentarer: infoga beskrivande eller konstnärlig text i en bild.
- Bildidentifiering: beskriv formatet och attributen för en bild.
- Sammansatt: överlappar en bild över en annan.
- Montage: ställ bildminiatyrer på en bildduk.
Lägg till gem rmagick för ruby eller rmagick4j för jruby i din gem-fil.
Genom att använda gem convert_options kan vi ge alternativ för bakgrundsfärg, kantfärg, kvalitet, omstorlek, skugga etc.,
Bildbeskärning:
Implementeras med hjälp av gem och jcrop
Vi kan anropa jcrop direkt med id/klass. Då kan vi få den nya höjden och bredden.
$(funktion() {
$('#cropbox').Jcrop();
});
För standard beskärningsstorlek
$(funktion() {
$('#cropbox').Jcrop({
onChange: update_crop,
onSelect: update_crop,
setSelect: [0, 0, 500, 500],
bildförhållande: 1
});
});
För uppdatering av beskärningsstorlek
function update_crop(coords) {
$('#crop_x').val(coords.x);
$('#crop_y').val(coords.y);
$('#crop_w').val(coords.w);
$('#crop_h').val(coords.h);
}
Referens: http://railscasts.com/episodes/182-cropping-images?view=asciicast
Bildbakgrund:
I vår modell kan vi lägga till convert_option för bildfältet och vi kan ställa in önskad färg som bakgrund.
Till exempel givet rosa.
:convert_options => {
:all => '-background HotPink -alpha Background'
}
Validering av bilddimension:
Med hjälp av Paperclip::Geometry kan vi ställa in bildens bredd och höjd till något värde.
def file_dimensions(width = 100, height = 100)
dimensioner = Gem::Geometry.from_file(photo.queued_for_write[:original].path)
om inte dimensions.width < width && dimensions.height < höjd
errors.add :photo, "Bredden måste vara #{width}px och höjden måste vara #{height}px"
slutet
slutet
Bildupplösning:
Vi kan ställa in bildupplösning med convert_options → kvalitetsalternativ.
Med detta alternativ kan vi bara ställa in upplösning.
:convert_options => {
:all => '-kvalitet 75'
}
Här kan kvaliteten ställas in i intervallet 0-100.
Referens:
http://www.imagemagick.org/script/command-line-options.php
http://www.imagemagick.org/script/convert.php
Avslutande anmärkning:
Bildmanipulationen är därför till hjälp för att omvandla bilderna enligt användarens krav och därmed få dem att känna att deras applikationer eller bilder är ännu mer attraktiva.
Detta gör det möjligt att beskära, rotera, ändra storlek på bilderna enligt våra krav och har ett brett spektrum av tillämpningar i dessa dagar.
Läs mer :
- En introduktion till Rails API
- Ett enkelt sätt att öka prestandan för din Rails-app
- Realtidsramverk
- Hur man installerar Ruby på skenor
Med geniala lösningar, progressiva affärsvärden och beprövad meritlista, RailsCarma är bäst lämpad att hjälpa dig med alla dina utvecklingsbehov. Vår utvecklingsprocess är starkt förankrad på outtröttlig uppmärksamhet på detaljer, inklusive kvalitet, design och excellens. Vi omsätter dina idéer till verklighet. Anslut till oss genom vår Kontakta oss sida.