ImageMagick
Ανοίξτε τη Βιβλιοθήκη Γ κώδικα για δημιουργία και μετατροπή εικόνων
Δημιουργήστε, επεξεργαστείτε, συνθέστε, διαβάστε και μετατρέψτε εικόνες Bitmap χρησιμοποιώντας δωρεάν C API. Επιτρέπει την αλλαγή μεγέθους, την αναστροφή, τον καθρέφτη, την περιστροφή, την παραμόρφωση, τη διάτμηση και τη μετατροπή εικόνων μέσα σε εφαρμογές C.
Το ImageMagick είναι μια βιβλιοθήκη ανοιχτού κώδικα που δίνει στους προγραμματιστές λογισμικού τη δύναμη να περιλαμβάνουν δυνατότητες επεξεργασίας εικόνας στις δικές τους εφαρμογές C. Η βιβλιοθήκη είναι cross-platform και μπορεί να τρέξει ομαλά σε Linux, Windows, Mac Os X, iOS, Android OS και πολλά άλλα. Περιλαμβάνει υποστήριξη για ανάγνωση, εμφάνιση, δημιουργία, μετατροπή, τροποποίηση και τροποποίηση εικόνων ράστερ χρησιμοποιώντας κώδικα C.
Ένα εξαιρετικό χαρακτηριστικό του ImageMagick είναι η ικανότητά του να μετατρέπει με ακρίβεια και επαγγελματικά εικόνες μεταξύ διαφορετικών κορυφαίων μορφών αρχείων. Η βιβλιοθήκη περιλαμβάνει υποστήριξη για περισσότερες από 200 μορφές αρχείων εικόνας όπως JPEG, PNG, GIF, HEIC, Exif, TIFF, CGM, DPX, EXR, WebP, Postscript, PDF, SVG και πολλά άλλα. Η βιβλιοθήκη παρέχει επίσης υποστήριξη για σχέδιο, καθώς και γραφικά και κινούμενα γραφικά με ευκολία.
Η βιβλιοθήκη είναι πλούσια σε χαρακτηριστικά και έχει συμπεριλάβει υποστήριξη για ορισμένες κοινές λειτουργίες επεξεργασίας εικόνας, όπως αλλαγή μεγέθους και αναστροφή εικόνας, κατοπτρισμός και περιστροφή εικόνας, παραμόρφωση, μετατροπή εικόνων, προσαρμογή χρωμάτων εικόνας, εφαρμογή διαφόρων ειδικών εφέ θαμπώματος ή ευκρίνειας ή κατωφλίου, διαβαθμίσεις εικόνας , η έξυπνη ανίχνευση άκρων σχεδιάζει κείμενο, γραμμές, πολύγωνα, ελλείψεις, χρησιμοποιώντας μαθηματικές εκφράσεις και πολλά άλλα. Πρόσφατα, η βιβλιοθήκη περιέλαβε επίσης υποστήριξη για εξαγωγή κειμένου από εικόνες χρησιμοποιώντας OCR.
Ξεκινώντας με το ImageMagick
Κλωνοποιήστε τις πιο πρόσφατες πηγές χρησιμοποιώντας την ακόλουθη εντολή
Εγκαταστήστε το ImageMagick μέσω GitHub.
git clone https://github.com/ImageMagick/ImageMagick.git
Ή χρησιμοποιήστε την ακόλουθη εντολή για να το εγκαταστήσετε.
Εγκαταστήστε το ImageMagick μέσω RPM.
$ rpm -Uvh ImageMagick-libs-7.0.10-60.x86_64.rpm
Μετατροπή εικόνας σε άλλες μορφές
Η βιβλιοθήκη ανοιχτού κώδικα C ImageMagick επιτρέπει στους προγραμματιστές λογισμικού να μετατρέπουν εικόνες σε άλλες υποστηριζόμενες μορφές αρχείων μέσα στις δικές τους εφαρμογές. Οι χρήστες πρέπει να παρέχουν την παράμετρο μορφής πριν από τη μετατροπή σε άλλη μορφή. Η βιβλιοθήκη μετατρέπει εσωτερικά την εικόνα σε άλλες μορφές νωρίτερα, πριν εφαρμόσει τους μετασχηματισμούς. Η βιβλιοθήκη υποστηρίζει τη μετατροπή σε πολλές δημοφιλείς μορφές εικόνας, όπως μορφές BMP, CMYK, GIF, JPEG, PBM, PNG, RGB, SVG, TIFF και XPM. Μια εξαιρετική πτυχή της βιβλιοθήκης είναι η ευκολία χρήσης κατά τη μετατροπή της εικόνας. Παρέχει επίσης τη δυνατότητα να μειώσετε το μέγεθος της εικόνας και να εφαρμόσετε διαφορετικά εφέ πριν τη γράψετε στην επιθυμητή μορφή.
Μετατροπή GIF σε JPEG Image μέσω ImageMagick
#include
using namespace std;
using namespace Magick;
int main(int argc,char **argv)
{
InitializeMagick(*argv);
// Read GIF file from disk
Image image( "giraffe.gif" );
// Write to BLOB in JPEG format
Blob blob;
image.magick( "JPEG" ) // Set JPEG output format
image.write( &blob );
[ Use BLOB data (in JPEG format) here ]
return 0;
}
Υποστήριξη Image Gradients με χρήση C API
Η βιβλιοθήκη ανοιχτού κώδικα C ImageMagick επιτρέπει στους προγραμματιστές λογισμικού να δημιουργούν διαβαθμίσεις εικόνας πολλαπλών χρωμάτων χρησιμοποιώντας εντολές C. Μπορείτε εύκολα να δημιουργήσετε μια σταδιακή ανάμειξη ενός ή πολλαπλών χρωμάτων χρησιμοποιώντας οριζόντια, κάθετα, κυκλικά ή ελλειπτικά σχήματα. Η βιβλιοθήκη έχει βελτιώσει τις διαβαθμίσεις μέσω της χρήσης πολλών -ορισμών όπως ο καθορισμός της κατεύθυνσης της γραμμικής κλίσης, ο προσδιορισμός συντεταγμένων του κέντρου για την ακτινική κλίση, ο περιορισμός της κλίσης σε μια μεγαλύτερη ή μικρότερη περιοχή από τις διαστάσεις της εικόνας και ούτω καθεξής επί. Επιπλέον, για μη γραμμικές διαβαθμίσεις κλίμακας του γκρι, προσθέστε -colorspace RGB -colorsspace gray πριν αποθηκεύσετε την έξοδο.
Δημιουργήστε έναν απλό απόφοιτο Grayscale μέσω C API
void test_wand(LPTSTR lpCmdLine)
{
MagickWand *m_wand = NULL;
PixelWand *p_wand = NULL;
PixelIterator *iterator = NULL;
PixelWand **pixels = NULL;
int x,y,gray;
char hex[128];
MagickWandGenesis();
p_wand = NewPixelWand();
PixelSetColor(p_wand,"white");
m_wand = NewMagickWand();
// Create a 100x100 image with a default of white
MagickNewImage(m_wand,100,100,p_wand);
// Get a new pixel iterator
iterator=NewPixelIterator(m_wand);
for(y=0;y<100;y++) {
// Get the next row of the image as an array of PixelWands
pixels=PixelGetNextIteratorRow(iterator,&x);
// Set the row of wands to a simple gray scale gradient
for(x=0;x<100;x++) {
gray = x*255/100;
sprintf(hex,"#%02x%02x%02x",gray,gray,gray);
PixelSetColor(pixels[x],hex);
}
// Sync writes the pixels back to the m_wand
PixelSyncIterator(iterator);
}
MagickWriteImage(m_wand,"bits_demo.gif");
// Clean up
iterator=DestroyPixelIterator(iterator);
DestroyMagickWand(m_wand);
MagickWandTerminus();
}
Εφαρμογή ειδικών εφέ σε εικόνες μέσω C
Η βιβλιοθήκη ανοιχτού κώδικα C ImageMagick έχει παράσχει λειτουργικότητα για την εφαρμογή διαφορετικών τύπων εφέ σε εικόνες. Παρέχει πολλές σημαντικές λειτουργίες όπως θόλωση, ευκρίνεια, κατώφλι, δημιουργία σκιών, φτερώνοντας σχήματα ή χρωματισμό μιας εικόνας χρησιμοποιώντας μερικές γραμμές κώδικα C. Υποστηρίζονται επίσης ορισμένα ειδικά εφέ θολώματος, όπως το θόλωση ραδιοφώνου και το θάμπωμα κίνησης.
Εφαρμογή Font Effect μέσω C API
magick_wand = NewMagickWand();
d_wand = NewDrawingWand();
p_wand = NewPixelWand();
set_tile_pattern(d_wand,"#check","pattern:checkerboard");
PixelSetColor(p_wand,"lightblue");
// Create a new transparent image
MagickNewImage(magick_wand,320,100,p_wand);
// Set up a 72 point font
DrawSetFont (d_wand, "Verdana-Bold-Italic" ) ;
DrawSetFontSize(d_wand,72);
// Now draw the text
DrawAnnotation(d_wand,28,68,"Magick");
// Draw the image on to the magick_wand
MagickDrawImage(magick_wand,d_wand);
// Trim the image
MagickTrimImage(magick_wand,0);
// Add a transparent border
PixelSetColor(p_wand,"lightblue");
MagickBorderImage(magick_wand,p_wand,5,5);
// and write it
MagickWriteImage(magick_wand,"text_pattern.png");
Υποστήριξη μεγάλων εικόνων
Η βιβλιοθήκη C ImageMagick έχει παράσχει υποστήριξη για εργασία με πολύ μεγάλες εικόνες. Επιτρέπει στους προγραμματιστές να ανοίγουν, να διαβάζουν, να επεξεργάζονται ή να γράφουν εικόνες έως μεγέθη Mega-, Giga- ή Tera-pixel μέσα στις δικές τους εφαρμογές επεξεργασίας εικόνας. Η βιβλιοθήκη επιτρέπει την αλλαγή του μεγέθους μιας εικόνας σε τετράγωνο ενός τέταρτου εκατομμυρίου pixel. Ενώ εργάζεστε με μεγάλες εικόνες, πρέπει να βεβαιωθείτε για τη διαθεσιμότητα μεγάλων πόρων μνήμης. Εάν το προεπιλεγμένο προσωρινό διαμέρισμα δίσκου είναι μικρό, καθοδηγήστε το ImageMagick να χρησιμοποιήσει ένα άλλο διαμέρισμα με επαρκή ελεύθερο χώρο.