Code covered by the BSD License  

Highlights from
Frame Photo

image thumbnail
from Frame Photo by Divakar Roy
Frames images with a beautiful frame.

frame_image(input_img_name,output_img_name)
% FRAME:It frames your image into a beautuful frame
% Only Requirements for Input image:
%   Width between 108-1600 pixels and Height between 94-1200 pixels. Works
%   for gray images.
%
% Syntax: frame_image(input_img_name,output_img_name)
% Example: frame_image('Input.jpg','Output.jpg')

function frame_image(input_img_name,output_img_name)

imgt=imread(input_img_name);
[m1 n1 r1]=size(imgt);
upper_white_limit_for_design_image=224;
bor=imread('design.jpg');
bar1=imread('bar1.jpg');
bar2=imread('bar2.jpg');
if (r1==1)
    bor=rgb2gray(bor);
    bar1=rgb2gray(bar1);
    bar2=rgb2gray(bar2);
end
[m2 n2 r2]=size(bor);
[m3 n3 r3]=size(bar1);
[m4 n4 r4]=size(bar2);
bor=double(bor);
bar1=double(bar1);
bar2=double(bar2);
if(m1<2*m2+2||m1>2*m4||n1<2*n2+2||n1>2*n3)
    error('Sorry the image is either too small or too big');
else
    img=imgt(1:size(imgt,1)-rem(size(imgt,1),2),1:size(imgt,2)-rem(size(imgt,2),2),:);
    [m1 n1 r1]=size(img);
    %======================================================================
    dec3=[bar1(:,1:(n1/2)+n4,:) bar1(:,(n1/2)+n4:-1:1,:)];
    dec4=[bar1(m3:-1:1,1:(n1/2)+n4,:) bar1(m3:-1:1,(n1/2)+n4:-1:1,:)];
    %======================================================================
    dec7=[bar2(1:m1/2,:,:);bar2(m1/2:-1:1,:,:)];
    dec8=[bar2(1:m1/2,n4:-1:1,:);bar2(m1/2:-1:1,n4:-1:1,:)];
    %==========================================================================
    bor2=bor(:,n2:-1:1,:);
    bor3=bor(m2:-1:1,:,:);
    bor4=bor(m2:-1:1,n2:-1:1,:);
    %==========================================================================
    sign1=(sign(bor-upper_white_limit_for_design_image)+1)/2;
    image5=double(img(1:m2,1:n2,:)).*double(sign1)+double(bor).*double(not(sign1));
    %==========================================================================
    sign1=(sign(bor2-upper_white_limit_for_design_image)+1)/2;
    image6=double(img(1:m2,n1-n2+1:n1,:)).*double(sign1)+double(bor2).*double(not(sign1));
    %==========================================================================
    sign1=(sign(bor3-upper_white_limit_for_design_image)+1)/2;
    image7=double(img(m1-m2+1:m1,1:n2,:)).*double(sign1)+double(bor3).*double(not(sign1));
    %==========================================================================
    sign1=(sign(bor4-upper_white_limit_for_design_image)+1)/2;
    image8=double(img(m1-m2+1:m1,n1-n2+1:n1,:)).*double(sign1)+double(bor4).*double(not(sign1));
    %======================================================================
    imagery=[image5 img(1:m2,n2+1:n1-n2,:) image6;img(m2+1:m1-m2,1:n1,:);image7 img(m1-m2+1:m1,n2+1:n1-n2,:) image8];
    imagy=[dec4;dec7 imagery dec8;dec3];
    imwrite(uint8(imagy),output_img_name);
end

Contact us at files@mathworks.com