Added fit-crop-to-screen Editor button, issue 2706

This commit is contained in:
DrSlony
2015-03-11 15:59:41 +01:00
parent 598161a50d
commit 1addf4bf3c
13 changed files with 570 additions and 7 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1528,7 +1528,8 @@ TP_WBALANCE_WATER_HEADER;Pod wodą
ZOOMPANEL_100;(100%) ZOOMPANEL_100;(100%)
ZOOMPANEL_NEWCROPWINDOW;Otwórz (nową) lupę ZOOMPANEL_NEWCROPWINDOW;Otwórz (nową) lupę
ZOOMPANEL_ZOOM100;Powiększ do 100%\nSkrót: <b>z</b> ZOOMPANEL_ZOOM100;Powiększ do 100%\nSkrót: <b>z</b>
ZOOMPANEL_ZOOMFITSCREEN;Dopasuj do ekranu\nSkrót: <b>f</b> ZOOMPANEL_ZOOMFITCROPSCREEN;Dopasuj kadr do ekranu\nSkrót: <b>Alt</b>-<b>f</b>
ZOOMPANEL_ZOOMFITSCREEN;Dopasuj cały obraz do ekranu\nSkrót: <b>f</b>
ZOOMPANEL_ZOOMIN;Przybliż\nSkrót: <b>+</b> ZOOMPANEL_ZOOMIN;Przybliż\nSkrót: <b>+</b>
ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b> ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b>

View File

@@ -1728,6 +1728,7 @@ TP_WBALANCE_WATER_HEADER;UnderWater
ZOOMPANEL_100;(100%) ZOOMPANEL_100;(100%)
ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window
ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: <b>z</b> ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: <b>z</b>
ZOOMPANEL_ZOOMFITSCREEN;Fit to screen\nShortcut: <b>f</b> ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: <b>Alt</b>-<b>f</b>
ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: <b>f</b>
ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: <b>+</b> ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: <b>+</b>
ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: <b>-</b> ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: <b>-</b>

View File

@@ -90,6 +90,12 @@ void CropHandler::sizeChanged (int x, int y, int ow, int oh) { // the ipc notif
*/ */
} }
double CropHandler::getFitCropZoom () {
double z1 = (double) wh / cropParams.h;
double z2 = (double) ww / cropParams.w;
return z1<z2 ? z1 : z2;
}
double CropHandler::getFitZoom () { double CropHandler::getFitZoom () {
if (ipc) { if (ipc) {

View File

@@ -85,6 +85,7 @@ class CropHandler : public rtengine::DetailedCropListener, public rtengine::Size
void newImage (rtengine::StagedImageProcessor* ipc_, bool isDetailWindow); void newImage (rtengine::StagedImageProcessor* ipc_, bool isDetailWindow);
void setZoom (int z, int centerx=-1, int centery=-1); void setZoom (int z, int centerx=-1, int centery=-1);
double getFitZoom (); double getFitZoom ();
double getFitCropZoom();
void setWSize (int w, int h); void setWSize (int w, int h);
void getWSize (int& w, int &h); void getWSize (int& w, int &h);
void setPosition (int x, int y, bool update=true); void setPosition (int x, int y, bool update=true);

View File

@@ -1575,6 +1575,27 @@ void CropWindow::zoomFit () {
fitZoom = true; fitZoom = true;
} }
void CropWindow::zoomFitCrop () {
if(cropHandler.cropParams.enabled) {
double z = cropHandler.getFitCropZoom ();
int cz = MAXZOOMSTEPS;
if (z < zoomSteps[0].zoom)
cz = 0;
else
for (int i=0; i<MAXZOOMSTEPS; i++)
if (zoomSteps[i].zoom <= z && zoomSteps[i+1].zoom > z) {
cz = i;
break;
}
zoomVersion = exposeVersion;
int centerX,centerY;
centerX = cropHandler.cropParams.x + cropHandler.cropParams.w / 2;
centerY = cropHandler.cropParams.y + cropHandler.cropParams.h / 2;
changeZoom (cz, true, centerX, centerY, false);
fitZoom = false;
}
}
void CropWindow::buttonPressed (LWButton* button, int actionCode, void* actionData) { void CropWindow::buttonPressed (LWButton* button, int actionCode, void* actionData) {
if (button==bZoomIn) // zoom in if (button==bZoomIn) // zoom in
@@ -1597,14 +1618,14 @@ void CropWindow::redrawNeeded (LWButton* button) {
iarea->redraw (); iarea->redraw ();
} }
void CropWindow::changeZoom (int zoom, bool notify, int centerx, int centery) { void CropWindow::changeZoom (int zoom, bool notify, int centerx, int centery, bool skipZoomIfUnchanged) {
if (zoom<0) if (zoom<0)
zoom = 0; zoom = 0;
else if (zoom>MAXZOOMSTEPS) else if (zoom>MAXZOOMSTEPS)
zoom = MAXZOOMSTEPS; zoom = MAXZOOMSTEPS;
if (cropZoom == zoom) { if (cropZoom == zoom && skipZoomIfUnchanged) {
// We are already at the start/end of the zoom range, so we do nothing // We are already at the start/end of the zoom range, so we do nothing
return; return;
} }

View File

@@ -93,7 +93,7 @@ class CropWindow : public LWButtonListener, public CropHandlerListener, public E
void drawScaledSpotRectangle (Cairo::RefPtr<Cairo::Context> cr, int rectSize); void drawScaledSpotRectangle (Cairo::RefPtr<Cairo::Context> cr, int rectSize);
void drawUnscaledSpotRectangle (Cairo::RefPtr<Cairo::Context> cr, int rectSize); void drawUnscaledSpotRectangle (Cairo::RefPtr<Cairo::Context> cr, int rectSize);
void drawObservedFrame (Cairo::RefPtr<Cairo::Context> cr, int rw=0, int rh=0); void drawObservedFrame (Cairo::RefPtr<Cairo::Context> cr, int rw=0, int rh=0);
void changeZoom (int zoom, bool notify=true, int centerx=-1, int centery=-1); void changeZoom (int zoom, bool notify=true, int centerx=-1, int centery=-1, bool skipZoomIfUnchanged = true);
void getObservedFrameArea (int& x, int& y, int& w, int& h, int rw=0, int rh=0); void getObservedFrameArea (int& x, int& y, int& w, int& h, int rw=0, int rh=0);
public: public:
@@ -130,6 +130,7 @@ class CropWindow : public LWButtonListener, public CropHandlerListener, public E
void zoomOut (bool toCursor=false, int cursorX=-1, int cursorY=-1); void zoomOut (bool toCursor=false, int cursorX=-1, int cursorY=-1);
void zoom11 (); void zoom11 ();
void zoomFit (); void zoomFit ();
void zoomFitCrop ();
double getZoom (); double getZoom ();
bool isMinZoom (); bool isMinZoom ();
bool isMaxZoom (); bool isMaxZoom ();

View File

@@ -1043,6 +1043,9 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
history->addBookmarkPressed (); history->addBookmarkPressed ();
setProgressStr(M("PROGRESSBAR_SNAPSHOT_ADDED")); setProgressStr(M("PROGRESSBAR_SNAPSHOT_ADDED"));
return true; return true;
case GDK_f:
iareapanel->imageArea->zoomPanel->zoomFitCropClicked();
return true;
} }
} }

View File

@@ -33,6 +33,8 @@ ZoomPanel::ZoomPanel (ImageArea* iarea) : iarea(iarea) {
image11->set_padding(0,0); image11->set_padding(0,0);
Gtk::Image* imageFit = Gtk::manage (new RTImage ("gtk-zoom-fit.png")); Gtk::Image* imageFit = Gtk::manage (new RTImage ("gtk-zoom-fit.png"));
imageFit->set_padding(0,0); imageFit->set_padding(0,0);
Gtk::Image* imageFitCrop = Gtk::manage (new RTImage ("gtk-zoom-crop.png"));
imageFit->set_padding(0,0);
zoomOut = Gtk::manage (new Gtk::Button()); zoomOut = Gtk::manage (new Gtk::Button());
zoomOut->add (*imageOut); zoomOut->add (*imageOut);
@@ -43,6 +45,9 @@ ZoomPanel::ZoomPanel (ImageArea* iarea) : iarea(iarea) {
zoomFit = Gtk::manage (new Gtk::Button()); zoomFit = Gtk::manage (new Gtk::Button());
zoomFit->add (*imageFit); zoomFit->add (*imageFit);
zoomFit->set_relief(Gtk::RELIEF_NONE); zoomFit->set_relief(Gtk::RELIEF_NONE);
zoomFitCrop = Gtk::manage (new Gtk::Button());
zoomFitCrop->add (*imageFitCrop);
zoomFitCrop->set_relief(Gtk::RELIEF_NONE);
zoom11 = Gtk::manage (new Gtk::Button()); zoom11 = Gtk::manage (new Gtk::Button());
zoom11->add (*image11); zoom11->add (*image11);
zoom11->set_relief(Gtk::RELIEF_NONE); zoom11->set_relief(Gtk::RELIEF_NONE);
@@ -50,6 +55,7 @@ ZoomPanel::ZoomPanel (ImageArea* iarea) : iarea(iarea) {
pack_start (*zoomOut, Gtk::PACK_SHRINK, 0); pack_start (*zoomOut, Gtk::PACK_SHRINK, 0);
pack_start (*zoomIn, Gtk::PACK_SHRINK, 0); pack_start (*zoomIn, Gtk::PACK_SHRINK, 0);
pack_start (*zoomFit, Gtk::PACK_SHRINK, 0); pack_start (*zoomFit, Gtk::PACK_SHRINK, 0);
pack_start (*zoomFitCrop, Gtk::PACK_SHRINK, 0);
pack_start (*zoom11, Gtk::PACK_SHRINK, 0); pack_start (*zoom11, Gtk::PACK_SHRINK, 0);
zoomLabel = Gtk::manage (new Gtk::Label ()); zoomLabel = Gtk::manage (new Gtk::Label ());
@@ -67,6 +73,7 @@ ZoomPanel::ZoomPanel (ImageArea* iarea) : iarea(iarea) {
zoomIn->signal_clicked().connect ( sigc::mem_fun(*this, &ZoomPanel::zoomInClicked) ); zoomIn->signal_clicked().connect ( sigc::mem_fun(*this, &ZoomPanel::zoomInClicked) );
zoomOut->signal_clicked().connect( sigc::mem_fun(*this, &ZoomPanel::zoomOutClicked) ); zoomOut->signal_clicked().connect( sigc::mem_fun(*this, &ZoomPanel::zoomOutClicked) );
zoomFit->signal_clicked().connect( sigc::mem_fun(*this, &ZoomPanel::zoomFitClicked) ); zoomFit->signal_clicked().connect( sigc::mem_fun(*this, &ZoomPanel::zoomFitClicked) );
zoomFitCrop->signal_clicked().connect( sigc::mem_fun(*this, &ZoomPanel::zoomFitCropClicked) );
zoom11->signal_clicked().connect ( sigc::mem_fun(*this, &ZoomPanel::zoom11Clicked) ); zoom11->signal_clicked().connect ( sigc::mem_fun(*this, &ZoomPanel::zoom11Clicked) );
newCrop->signal_clicked().connect ( sigc::mem_fun(*this, &ZoomPanel::newCropClicked) ); newCrop->signal_clicked().connect ( sigc::mem_fun(*this, &ZoomPanel::newCropClicked) );
@@ -74,6 +81,7 @@ ZoomPanel::ZoomPanel (ImageArea* iarea) : iarea(iarea) {
zoomOut->set_tooltip_markup (M("ZOOMPANEL_ZOOMOUT")); zoomOut->set_tooltip_markup (M("ZOOMPANEL_ZOOMOUT"));
zoom11->set_tooltip_markup (M("ZOOMPANEL_ZOOM100")); zoom11->set_tooltip_markup (M("ZOOMPANEL_ZOOM100"));
zoomFit->set_tooltip_markup (M("ZOOMPANEL_ZOOMFITSCREEN")); zoomFit->set_tooltip_markup (M("ZOOMPANEL_ZOOMFITSCREEN"));
zoomFitCrop->set_tooltip_markup (M("ZOOMPANEL_ZOOMFITCROPSCREEN"));
newCrop->set_tooltip_markup (M("ZOOMPANEL_NEWCROPWINDOW")); newCrop->set_tooltip_markup (M("ZOOMPANEL_NEWCROPWINDOW"));
zoomLabel->set_text (M("ZOOMPANEL_100")); zoomLabel->set_text (M("ZOOMPANEL_100"));
@@ -97,6 +105,12 @@ void ZoomPanel::zoomFitClicked () {
iarea->mainCropWindow->zoomFit (); iarea->mainCropWindow->zoomFit ();
} }
void ZoomPanel::zoomFitCropClicked () {
if (iarea->mainCropWindow)
iarea->mainCropWindow->zoomFitCrop ();
}
void ZoomPanel::zoom11Clicked () { void ZoomPanel::zoom11Clicked () {
if (iarea->mainCropWindow) if (iarea->mainCropWindow)

View File

@@ -29,6 +29,7 @@ class ZoomPanel : public Gtk::HBox {
Gtk::Button* zoomOut; Gtk::Button* zoomOut;
Gtk::Button* zoomIn; Gtk::Button* zoomIn;
Gtk::Button* zoomFit; Gtk::Button* zoomFit;
Gtk::Button* zoomFitCrop;
Gtk::Button* zoom11; Gtk::Button* zoom11;
Gtk::Button* newCrop; Gtk::Button* newCrop;
Gtk::Label* zoomLabel; Gtk::Label* zoomLabel;
@@ -41,6 +42,7 @@ class ZoomPanel : public Gtk::HBox {
void zoomInClicked (); void zoomInClicked ();
void zoomOutClicked (); void zoomOutClicked ();
void zoomFitClicked (); void zoomFitClicked ();
void zoomFitCropClicked ();
void zoom11Clicked (); void zoom11Clicked ();
void newCropClicked (); void newCropClicked ();
void refreshZoomLabel (); void refreshZoomLabel ();

View File

@@ -0,0 +1 @@
gtk-zoom-crop.png,w22,actions

View File

@@ -0,0 +1,512 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1000"
height="1000"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.91 r13725"
sodipodi:docname="gtk-zoom-crop.svg"
inkscape:export-filename="/home/philippe/devel/rawtherapee/icons/NewIcons/gtk-zoom-fit.png"
inkscape:export-xdpi="1.8"
inkscape:export-ydpi="1.8"
version="1.1">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 36 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="72 : 36 : 1"
inkscape:persp3d-origin="36 : 24 : 1"
id="perspective21" />
<inkscape:perspective
id="perspective3614"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3636"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3658"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3680"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3680-0"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3680-8"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3720"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742-2"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742-26"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742-0"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3742-1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3836"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2861"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2963"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2985"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3711"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2857"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3787"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2855"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2870"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2863"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4649"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4654"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4900"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4928"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5460"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5494"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5528"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5580"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective8630"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3641"
id="linearGradient8300"
x1="173.71875"
y1="235.28125"
x2="289.4375"
y2="235.28125"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
id="linearGradient3641">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3643" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3645" />
</linearGradient>
<filter
color-interpolation-filters="sRGB"
inkscape:collect="always"
id="filter8306">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="1.86075"
id="feGaussianBlur8308" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3641"
id="linearGradient8368"
x1="-263.00217"
y1="-16.221928"
x2="222.29179"
y2="-16.221928"
gradientUnits="userSpaceOnUse" />
<linearGradient
y2="-16.221928"
x2="222.29179"
y1="-16.221928"
x1="-263.00217"
gradientUnits="userSpaceOnUse"
id="linearGradient8659"
xlink:href="#linearGradient3641"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3641"
id="linearGradient8724"
gradientUnits="userSpaceOnUse"
x1="-263.00217"
y1="-16.221928"
x2="222.29179"
y2="-16.221928"
gradientTransform="translate(1.3147295,1.3593836)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3641"
id="linearGradient8727"
gradientUnits="userSpaceOnUse"
x1="173.71875"
y1="235.28125"
x2="289.4375"
y2="235.28125"
gradientTransform="translate(1.3147295,1.3593836)" />
<inkscape:perspective
id="perspective8808"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2914"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3641-2"
id="linearGradient2904"
gradientUnits="userSpaceOnUse"
x1="-263.00217"
y1="-16.221928"
x2="222.29179"
y2="-16.221928" />
<linearGradient
inkscape:collect="always"
id="linearGradient3641-2">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3643-6" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3645-1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3641"
id="linearGradient3708"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.3147295,1.3593836)"
x1="173.71875"
y1="235.28125"
x2="289.4375"
y2="235.28125" />
<inkscape:perspective
id="perspective3759"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
y2="-22.264168"
x2="216.55397"
y1="-22.264168"
x1="-268.9624"
gradientUnits="userSpaceOnUse"
id="linearGradient3726"
xlink:href="#linearGradient3641-3"
inkscape:collect="always"
gradientTransform="translate(-180.70032,-122.18902)" />
<linearGradient
inkscape:collect="always"
id="linearGradient3641-3">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3643-4" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3645-6" />
</linearGradient>
<filter
color-interpolation-filters="sRGB"
inkscape:collect="always"
id="filter3703-1">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="7.7594619"
id="feGaussianBlur3705-5" />
</filter>
<linearGradient
y2="-22.264168"
x2="216.55397"
y1="-22.264168"
x1="-268.9624"
gradientTransform="translate(-0.15518481,-0.04960095)"
gradientUnits="userSpaceOnUse"
id="linearGradient3770"
xlink:href="#linearGradient3641-3"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3641"
id="linearGradient3631"
x1="-274.27155"
y1="34.445072"
x2="334.3028"
y2="34.445072"
gradientUnits="userSpaceOnUse" />
<filter
inkscape:collect="always"
id="filter4666">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="8.7866288"
id="feGaussianBlur4668" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.854"
inkscape:cx="500"
inkscape:cy="500"
inkscape:document-units="px"
inkscape:current-layer="g4060"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1032"
inkscape:window-x="-1"
inkscape:window-y="0"
showgrid="true"
showborder="true"
inkscape:showpageshadow="true"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(464.16179,464.03236)">
<g
id="g4082"
transform="translate(0,1.552561)">
<g
id="g4060"
transform="matrix(1.5074827,0,0,1.5074827,-9.4212231,-17.89429)">
<path
inkscape:connector-curvature="0"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.7;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate"
d="m -26.665087,-280.45974 c -66.17364,0 -132.276483,26.47321 -182.729063,76.82637 -100.90331,100.70669 -100.90331,263.593004 0,364.2997 79.88365,79.72592 198.373128,95.8091 294.678702,49.30232 2.533043,-1.22446 5.723363,-2.3959 8.224778,-3.70694 15.01339,-5.91822 51.46491,-17.23861 72.72556,0.23168 l 37.48645,-37.48644 c -20.25494,-26.45927 1.52332,-75.47448 2.96556,-78.564 46.59732,-96.1149491 29.67782,-214.35014 -50.2059,-294.07632 -50.45257,-50.35316 -116.972433,-76.82637 -183.146087,-76.82637 z m 0,65.72872 c 107.025717,0 194.243747,86.64048 194.243747,193.456013 0,106.815519 -87.21803,193.849887 -194.243747,193.849887 -107.025573,0 -193.826713,-87.034368 -193.826713,-193.849887 0,-106.815533 86.80114,-193.456013 193.826713,-193.456013 z"
id="path3869" />
<path
inkscape:connector-curvature="0"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.7;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;enable-background:accumulate"
d="m 203.72134,169.00695 -37.48645,37.48644 c 0.87554,0.71944 1.75037,1.40443 2.57169,2.22417 15.40337,15.37275 10.19375,35.63245 33.75634,59.14889 l 82.89648,81.99292 59.6586,-63.18019 -80.81134,-80.41747 c -23.56258,-23.51641 -42.21634,-18.31408 -57.61976,-33.68683 -1.11911,-1.11694 -2.03174,-2.34808 -2.96556,-3.56793 z"
id="path3803-5" />
<path
inkscape:connector-curvature="0"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.4;fill:url(#linearGradient3708);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;filter:url(#filter8306);enable-background:accumulate"
d="m 187.28348,178.48438 c -3.80781,4.42565 -9.81474,7.98801 -12.25,13.03125 8.46134,15.2102 10.93367,34.92821 25.95417,45.58503 19.24984,19.58985 39.11074,38.46054 58.48333,57.97747 9.8579,-11.54584 21.83337,-21.76305 31.28125,-33.4375 -8.69514,-7.27896 -15.70438,-16.29486 -24.18317,-24.02015 -16.647,-16.64163 -32.38229,-34.36307 -51.91058,-47.5111 -9.01605,-4.03934 -18.68939,-6.81106 -27.125,-11.90625 l -0.25,0.28125 z"
id="path3803-1"
transform="matrix(1.1176301,0,0,1.1176301,-4.9962446,-5.6010279)" />
<path
style="opacity:0.4;color:#000000;fill:url(#linearGradient3770);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3703-1);enable-background:accumulate"
d="m -29.686435,-264.48712 c -95.607055,0.51987 -186.765375,63.90879 -222.031245,152.125 -31.80076,77.947669 -19.55484,172.668858 32.99404,238.75412 46.33142,59.72303 121.641445,96.51595 197.599705,93.30839 38.99369,-0.89335 76.69708,-12.2385 111.500002,-29.125 22.796423,-9.81433 49.718183,-13.15512 73.343753,-4.25 6.06682,-7.41694 14.3238,-12.93577 19.96875,-20.5625 -10.46179,-27.82452 -2.01817,-58.63741 9.84375,-84.65625 14.71908,-32.920367 23.64829,-68.537081 22.8125,-104.781241 -0.94626,-77.495889 -40.56873,-153.759269 -105.06627,-196.858939 -41.062385,-28.57369 -90.845305,-44.84561 -140.964985,-43.95358 z m 2.9375,33.5 C 64.627085,-231.9983 152.10732,-166.50663 175.79704,-78.272781 195.75156,-6.9586309 175.59916,74.75957 122.46186,126.5521 72.529194,176.55108 -3.6877848,200.17941 -72.944695,183.64347 -144.75184,167.21581 -206.75947,111.43191 -227.55585,40.382582 c -20.56367,-66.924093 -5.74899,-144.432002 40.58817,-197.150952 39.34528,-46.29678 99.120775,-74.59794 160.218745,-74.21875 z"
id="path3869-6-6" />
<g
transform="matrix(0.49424597,0,0,0.49326773,-40.479264,-35.662423)"
id="g3136">
<path
inkscape:connector-curvature="0"
inkscape:export-ydpi="2"
inkscape:export-xdpi="2"
id="path2923"
d="m -156.50868,-251.72429 0,99.83932 -99.9452,0 0,83.305281 99.9452,0 0,289.864299 289.75849,0 0,99.83931 83.30524,0 0,-99.83931 99.9452,0 0,-83.30526 -99.9452,0 0,-289.86432 -289.758379,0 0,-99.83932 -83.305351,0 z m 83.305351,183.144601 206.453139,0 0,206.559039 -206.453139,0 0,-206.559039 z"
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
<path
inkscape:connector-curvature="0"
id="path2923-4"
d="m -143.8125,-240.09375 c -2.30149,4.18302 0.20869,10.01235 -0.71875,14.6875 0.0252,27.58342 0.27165,55.17234 -0.4375,82.75 -20.42606,5.77416 -41.86118,1.19447 -62.75,2.78125 -12.25,0 -24.5,0 -36.75,0 0,19.76042 0,39.52083 0,59.28125 33.32292,0 66.64583,0 99.96875,0 0,96.625 0,193.25 0,289.875 96.583333,0 193.166667,0 289.75,0 0,33.28125 0,66.5625 0,99.84375 19.77083,0 39.54167,0 59.3125,0 0,-33.28125 0,-66.5625 0,-99.84375 33.3125,0 66.625,0 99.9375,0 0,-19.77083 0,-39.54167 0,-59.3125 -33.3125,0 -66.625,0 -99.9375,0 0,-96.614583 0,-193.229167 0,-289.84375 -96.59375,0 -193.1875,0 -289.78125,0 0,-33.28125 0,-66.5625 0,-99.84375 -18.93879,-0.28558 -38.02261,0.54663 -56.875,-0.375 -0.55057,-0.11881 -1.18228,-0.24686 -1.71875,0 z m 60.59375,159.5 c 76.15625,0 152.3125,0 228.46875,0 0,76.8541667 0,153.708333 0,230.5625 -76.822917,0 -153.6458333,0 -230.46875,0 0,-76.854167 0,-153.7083333 0,-230.5625 l 1,0 1,0 z"
style="opacity:0.4;fill:url(#linearGradient3631);fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter4666)" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB