forked from blackfiveimaging/photoprint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcarouselcheck.cpp
65 lines (51 loc) · 1.52 KB
/
carouselcheck.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
#include <gtk/gtk.h>
#include "imagesource/imagesource_util.h"
#include "imagesource/pixbuf_from_imagesource.h"
#include "imagesource/imagesource_montage.h"
#include "imagesource_segmentmask.h"
#include "imagesource/imagesource_mask.h"
#include "miscwidgets/pixbufview.h"
#include "debug.h"
#include "layout_carousel.h"
#include "config.h"
#include "gettext.h"
#define _(x) gettext(x)
using namespace std;
int main(int argc,char**argv)
{
gtk_init(&argc,&argv);
try
{
GtkWidget *win=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (win), _("PixBufView Test"));
gtk_signal_connect (GTK_OBJECT (win), "delete_event",
(GtkSignalFunc) gtk_main_quit, NULL);
GtkWidget *pview=pixbufview_new(NULL,false);
gtk_container_add (GTK_CONTAINER (win), pview);
gtk_widget_show(pview);
gtk_widget_show(win);
if(argc>1)
{
ImageSource_Montage *mon=new ImageSource_Montage(IS_TYPE_RGBA,300);
CircleMontage c(512,512);
c.SetSegments(6,25,25);
c.SetInnerRadius(20);
CMSegment *targetseg=c.GetSegmentExtent(0);
ImageSource *is=ISLoadImage(argv[1]);
ImageSource *mask=new ImageSource_SegmentMask(targetseg,true);
is=ISScaleImageBySize(is,mask->width,mask->height);
is=new ImageSource_Mask(is,mask);
mon->Add(is,0,0);
GdkPixbuf *pb=pixbuf_from_imagesource(mon,128,128,128);
pixbufview_set_pixbuf(PIXBUFVIEW(pview),pb);
// g_object_unref(G_OBJECT(pview));
}
gtk_main();
}
catch(const char *err)
{
Debug[ERROR] << "Error: " << err << endl;
}
return(0);
}