Página 1 de 1

Ayuda con el Objet plugin ExifImages

Publicado: 24 May 2011 18:16
por xxsolracxx
Bueno de nuevo con una dudas acerca de AMS8, aunque este problema es acerca de un plugin, es el objet plugin "ExifImages" lo que pasa es que cuando quiero guardar una imagen editada con ese objet este siempre me la guarda con tamaño de 348px por 283px, cuando la imagen original es mas grande.

quisiera que me ayudaran o me dijeran si existe una manera de guardar la imagen con otro tamaño.

Re: Ayuda con el Objet plugin ExifImages

Publicado: 24 May 2011 19:24
por Ceone
el problema esta en que este objeto guarda usando el tamaño que tiene el objeto si cuando cargas la imagen usas "Autosize", contra mas grande sea el objeto mayor sera la resolución.... aun que creo que no es una buena idea, si deseas que la imagen no se redimensione al tamaño del objeto desactive esa opción y luego use por ejemplo:
ExifImage.ZoomToFitByWidth("Plugin1"); -- Cambie el nombre si no se llama Plugin1
aun que seguro que existen muchos mas modos puesto que tiene un montón de acciones aun que este plugin esta incompleto en muchos aspectos... esta echo a partir de un activeX... la verdad es que apenas lo he usado ni probado ni nada... pero bueno... si quieres probar de guardar de manera manual usando el activeX con Memory, es muy fácil mira este el el código del plugin:
ExifImage={};

ExifImageObject={};

System.RegisterActiveX(_SourceFolder.."\\Autoplay\\Plugins\\EXIFIMAGES\\ExifImage.ocx");
--Appearance
Flat = 0;
Style3D = 1;
--ImageAlign
None = 0;
Top = 1;
TopLeft = 2;
TopRight = 3;
Center = 4;
Bottom = 5;
BottomLeft = 6;
BottomRight = 7;
--BackStyle
Solid = 0;
Horizontal = 1;
Vertical = 2;
ForwardDiagonal = 3;
BackwardDiagonal = 4;
Cross = 5;
DiagonalCross = 6;
Dot05Percent = 7;
Dot10Percent = 8;
Dot20Percent = 9;
Dot25Percent = 10;
Dot30Percent = 11;
Dot40Percent = 12;
Dot50Percent = 13;
Dot60Percent = 14;
Dot70Percent = 15;
Dot75Percent = 16;
Dot80Percent = 17;
Dot90Percent = 18;
LightDownwardDiagonal = 19;
LightUpwardDiagonal = 20;
DarkDownwardDiagonal = 21;
DarkUpwardDiagonal = 22;
WideDownwardDiagonal = 23;
WideUpwardDiagonal = 24;
LightVertical = 25;
LightHorizontal = 26;
NarrowVertical = 27;
NarrowHorizontal = 28;
DarkVertical = 29;
DarkHorizontal = 30;
DashedDownwardDiagonal = 31;
DashedUpwardDiagonal = 32;
DashedHorizontal = 33;
DashedVertical = 34;
SmallConfetti = 35;
LargeConfetti = 36;
ZigZag = 37;
Wave = 38;
DiagonalBrick = 39;
HorizontalBrick = 40;
Weave = 41;
Plaid = 42;
Divot = 43;
DottedGrid = 44;
DottedDiamond = 45;
Shingle = 46;
Trellis = 47;
Sphere = 48;
SmallGrid = 49;
SmallCheckerBoard = 50;
LargeCheckerBoard = 51;
OutlinedDiamond = 52;
SolidDiamond = 53;
--TiffCompression
CompressionLZW = 0;
CompressionCCITT3 = 1;
CompressionCCITT4 = 2;
CompressionRle = 3;
CompressionNone = 4;


function BoolNum(ValueA)
	if ValueA then
		return 1
	else
		return 0
	end
end 

function ExifImage.CreateObject(ObjectName, ImageFile, AutoSize, ScrollBar)
	if Memory then
		ExifImageObject[ObjectName] = Memory.CreateObject(ExifImages.GetWindowHandle(ObjectName), "ExifImage.ExifImageCtrl.1", "ObjectEvents");
		if ExifImageObject[ObjectName] then
			ScrollBar = BoolNum(ScrollBar);
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "ScrollBarMode", ScrollBar);
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "FileName", ImageFile);
			if AutoSize then
				SizeObj = Plugin.GetSize(ObjectName);
				Memory.CallObjectFunction(ExifImageObject[ObjectName], "Resize", SizeObj.Width, SizeObj.Height);
			end
		end
	end
end

function ExifImage.LoadImage(ObjectName, ImageFile, AutoSize, ScrollBar)
	if ExifImageObject[ObjectName] then
		ScrollBar = BoolNum(ScrollBar);
		Memory.SetObjectProperty(ExifImageObject[ObjectName], "ScrollBarMode", ScrollBar);
		Memory.SetObjectProperty(ExifImageObject[ObjectName], "FileName", ImageFile);
		if AutoSize then
			SizeObj = Plugin.GetSize(ObjectName);
			Memory.CallObjectFunction(ExifImageObject[ObjectName], "Resize", SizeObj.Width, SizeObj.Height);
		end
	end	
end

function ExifImage.GetImage(ObjectName)
	if ExifImageObject[ObjectName] then
		return Memory.GetObjectProperty(ExifImageObject[ObjectName], "FileName");
	end	
end

function ExifImage.SetBorder(ObjectName, ShowBorder, BorderWidth, BorderColor)
	if ExifImageObject[ObjectName] then
		ShowBorder = BoolNum(ShowBorder);
		Memory.SetObjectProperty(ExifImageObject[ObjectName], "ShowBorder", ShowBorder);
		Memory.SetObjectProperty(ExifImageObject[ObjectName], "BorderWidth", BorderWidth);
		Memory.SetObjectProperty(ExifImageObject[ObjectName], "BorderColor", BorderColor);
	end
end

function ExifImage.GetBorder(ObjectName)
	if ExifImageObject[ObjectName] then
		tlbBorder = {}
		tlbBorder.Show = Memory.GetObjectProperty(ExifImageObject[ObjectName], "ShowBorder");
		tlbBorder.Width = Memory.GetObjectProperty(ExifImageObject[ObjectName], "BorderWidth");
		tlbBorder.Color = Memory.GetObjectProperty(ExifImageObject[ObjectName], "BorderColor");
		return tlbBorder
	end
end

function ExifImage.SetAppearance(ObjectName, Appearance)
	if ExifImageObject[ObjectName] then
		Memory.SetObjectProperty(ExifImageObject[ObjectName], "Appearance", Appearance);
	end
end

function ExifImage.GetAppearance(ObjectName)
	if ExifImageObject[ObjectName] then
		return Memory.GetObjectProperty(ExifImageObject[ObjectName], "Appearance");
	end
end

function ExifImage.SetAlign(ObjectName, ImageAlign)
	if ExifImageObject[ObjectName] then
		Memory.SetObjectProperty(ExifImageObject[ObjectName], "Align", ImageAlign);
	end
end

function ExifImage.GetAlign(ObjectName)
	if ExifImageObject[ObjectName] then
		return Memory.GetObjectProperty(ExifImageObject[ObjectName], "Align");
	end
end

function ExifImage.SetBackColor(ObjectName, BackColor)
	if ExifImageObject[ObjectName] then
		Memory.SetObjectProperty(ExifImageObject[ObjectName], "BackColor", BackColor);
	end
end

function ExifImage.GetBackColor(ObjectName)
	if ExifImageObject[ObjectName] then
		return Memory.GetObjectProperty(ExifImageObject[ObjectName], "BackColor");
	end
end

function ExifImage.SetForeColor(ObjectName, BColor)
	if ExifImageObject[ObjectName] then
		Memory.SetObjectProperty(ExifImageObject[ObjectName], "ForeColor", BColor);
	end
end

function ExifImage.GetForeColor(ObjectName)
	if ExifImageObject[ObjectName] then
		return Memory.GetObjectProperty(ExifImageObject[ObjectName], "ForeColor");
	end
end

function ExifImage.ConvertFrom1bpp(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ConvertFrom1bpp");
	end
end

function ExifImage.Undo(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Undo");
	end
end

function ExifImage.GetUndo(ObjectName)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetUndo");
	end
end

function ExifImage.GetInfo(ObjectName)
	if ExifImageObject[ObjectName] then
		tblkInfoX = {}
		tblkInfoX.Artist = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetImageArtist");
		tblkInfoX.Copyright = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetImageCopyright");
		tblkInfoX.DateTime = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetImageDateTime");
		tblkInfoX.Description = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetImageDescription");
		tblkInfoX.EquipMake = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetImageEquipMake");
		tblkInfoX.EquipModel = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetImageEquipModel");
		return tblkInfoX
	end
end

function ExifImage.SetInfo(ObjectName, Artist, Copyright, DateTime, Description, EquipMake, EquipModel)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetImageArtist", Artist);
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetImageCopyright", Copyright);
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetImageDateTime", DateTime);
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetImageDescription", Description);
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetImageEquipMake", EquipMake);
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetImageEquipModel",EquipModel);
	end
end

function ExifImage.DrawText(ObjectName, outX, outY, strText, tblFont)
	if ExifImageObject[ObjectName] then
		if tblFont then
			if tblFont.Name then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextFont", tblFont.Name);
			end
			if tblFont.Size then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextSize", tblFont.Size);
			end
			if tblFont.Bold then
				tblFont.Bold = BoolNum(tblFont.Bold);
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextBold", tblFont.Bold);
			end
			if tblFont.Italic then
				tblFont.Italic = BoolNum(tblFont.Italic);
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextItalic", tblFont.Italic);
			end
			if tblFont.Color then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextColor", tblFont.Color);
			end
		end
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "DrawText", outX, outY, strText);
	end
end

function ExifImage.ConvertToBmp(ObjectName, strPathSource, strPathDestination)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "ConvertToBmp", strPathSource, strPathDestination);
	end
end

function ExifImage.ConvertToGif(ObjectName, strPathSource, strPathDestination)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "ConvertToGif", strPathSource, strPathDestination);
	end
end

function ExifImage.ConvertToJpg(ObjectName, strPathSource, strPathDestination, JpgQuality) -- 1 to 100
	if ExifImageObject[ObjectName] then
		if JpgQuality then
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "JpgQuality", JpgQuality);
		end
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "ConvertToJpg", strPathSource, strPathDestination);
	end
end

function ExifImage.ConvertToPng(ObjectName, strPathSource, strPathDestination)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "ConvertToPng", strPathSource, strPathDestination);
	end
end

function ExifImage.ConvertToTif(ObjectName, strPathSource, strPathDestination, TiffCompression)
	if ExifImageObject[ObjectName] then
		if TiffCompression then
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "TiffCompression", TiffCompression);
		end
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "ConvertToTif", strPathSource, strPathDestination);
	end
end

function ExifImage.Flip(ObjectName, Flip)
	if ExifImageObject[ObjectName] then
		Flip = BoolNum(Flip);
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Flip", Flip);
	end
end

function ExifImage.SetSize(ObjectName, xWidth, xHeight)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Resize", xWidth, xHeight);
	end
end

function ExifImage.GetSize(ObjectName)
	if ExifImageObject[ObjectName] then
		tblSize = {}
		tblSize.Height = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetHeight");
		tblSize.Width = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetWidth");
		return tblSize
	end
end

function ExifImage.Rotate90(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Rotate90");
	end
end

function ExifImage.Rotate180(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Rotate180");
	end
end

function ExifImage.Rotate270(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Rotate270");
	end
end

function ExifImage.SaveAsBmp(ObjectName, FilePath)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "SaveAsBmp", FilePath);
	end
end

function ExifImage.SaveAsGif(ObjectName, FilePath)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "SaveAsGif", FilePath);
	end
end

function ExifImage.SaveAsJpg(ObjectName, FilePath, JpgQuality) -- 1 to 100
	if ExifImageObject[ObjectName] then
		if JpgQuality then
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "JpgQuality", JpgQuality);
		end
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "SaveAsJpg", FilePath);
	end
end

function ExifImage.SaveAsPng(ObjectName, FilePath)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "SaveAsPng", FilePath);
	end
end

function ExifImage.SaveAsTif(ObjectName, FilePath, TiffCompression)
	if ExifImageObject[ObjectName] then
		if TiffCompression then
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "TiffCompression", TiffCompression);
		end
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "SaveAsTif", FilePath);
	end
end

function ExifImage.Zoom(ObjectName, ZoomValue)
	if ExifImageObject[ObjectName] then
		if ZoomValue then
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "ZoomValue", ZoomValue);
		end
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Zoom");
	end
end

function ExifImage.GetZoom(ObjectName)
	if ExifImageObject[ObjectName] then
		return Memory.GetObjectProperty(ExifImageObject[ObjectName], "ZoomValue");
	end
end

function ExifImage.ZoomByOriginal(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ZoomByOriginal");
	end
end

function ExifImage.ZoomToFit(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ZoomToFit");
	end
end

function ExifImage.ZoomToFitByWidth(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ZoomToFitByWidth");
	end
end

function ExifImage.ZoomToFitByHeight(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ZoomToFitByHeight");
	end
end

function ExifImage.DrawWaterMarkText(ObjectName, outX, outY, strText, tblFont)
	if ExifImageObject[ObjectName] then
		if tblFont then
			if tblFont.Name then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextFont", tblFont.Name);
			end
			if tblFont.Size then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextSize", tblFont.Size);
			end
			if tblFont.Bold then
				tblFont.Bold = BoolNum(tblFont.Bold);
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextBold", tblFont.Bold);
			end
			if tblFont.Italic then
				tblFont.Italic = BoolNum(tblFont.Italic);
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextItalic", tblFont.Italic);
			end
			if tblFont.Color then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextColor", tblFont.Color);
			end
		end
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "DrawWaterMarkText", outX, outY, strText);
	end
end

function ExifImage.DrawOutlineText(ObjectName, outX, outY, strText, tblFont)
	if ExifImageObject[ObjectName] then
		if tblFont then
			if tblFont.Name then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextFont", tblFont.Name);
			end
			if tblFont.Size then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextSize", tblFont.Size);
			end
			if tblFont.Bold then
				tblFont.Bold = BoolNum(tblFont.Bold);
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextBold", tblFont.Bold);
			end
			if tblFont.Italic then
				tblFont.Italic = BoolNum(tblFont.Italic);
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextItalic", tblFont.Italic);
			end
			if tblFont.Color then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextColor", tblFont.Color);
			end
		end
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "DrawOutlineText", outX, outY, strText);
	end
end

function ExifImage.DrawFillOutlineText(ObjectName, outX, outY, strText, FillColor, tblFont)
	if ExifImageObject[ObjectName] then
		if tblFont then
			if tblFont.Name then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextFont", tblFont.Name);
			end
			if tblFont.Size then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextSize", tblFont.Size);
			end
			if tblFont.Bold then
				tblFont.Bold = BoolNum(tblFont.Bold);
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextBold", tblFont.Bold);
			end
			if tblFont.Italic then
				tblFont.Italic = BoolNum(tblFont.Italic);
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextItalic", tblFont.Italic);
			end
			if tblFont.Color then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextColor", tblFont.Color);
			end
		end
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "DrawFillOutlineText", outX, outY, strText, FillColor);
	end
end

function ExifImage.DrawShadowText(ObjectName, outX, outY, strText, ShadowColor, tblFont)
	if ExifImageObject[ObjectName] then
		if tblFont then
			if tblFont.Name then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextFont", tblFont.Name);
			end
			if tblFont.Size then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextSize", tblFont.Size);
			end
			if tblFont.Bold then
				tblFont.Bold = BoolNum(tblFont.Bold);
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextBold", tblFont.Bold);
			end
			if tblFont.Italic then
				tblFont.Italic = BoolNum(tblFont.Italic);
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextItalic", tblFont.Italic);
			end
			if tblFont.Color then
				Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextColor", tblFont.Color);
			end
		end
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "DrawShadowText", outX, outY, strText, ShadowColor);
	end
end

function ExifImage.SetFont(ObjectName, Name, Size, Bold, Italic, Color)
	if ExifImageObject[ObjectName] then
		if Name then
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextFont", Name);
		end
		if Size then
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextSize", Size);
		end
		if Bold then
			Bold = BoolNum(Bold);
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextBold", Bold);
		end
		if Italic then
			Italic = BoolNum(Italic);
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextItalic", Italic);
		end
		if Color then
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "TextColor", Color);
		end
	end
end

function ExifImage.GetFont(ObjectName)
	if ExifImageObject[ObjectName] then
		tblFont = {}
		tblFont.Name = Memory.GetObjectProperty(ExifImageObject[ObjectName], "TextFont");
		tblFont.Size = Memory.GetObjectProperty(ExifImageObject[ObjectName], "TextSize");
		tblFont.Bold = Memory.GetObjectProperty(ExifImageObject[ObjectName], "TextBold");
		tblFont.Italic = Memory.GetObjectProperty(ExifImageObject[ObjectName], "TextItalic");
		tblFont.Color = Memory.GetObjectProperty(ExifImageObject[ObjectName], "TextColor");
		return tblFont
	end
end

function ExifImage.CopyToClipboard(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "CopyToClipboard");
	end
end

function ExifImage.SetScrollBarPos(ObjectName, Xpos, Ypos)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetScrollBarPos", Xpos, Ypos);
	end
end

function ExifImage.GetScrollBarPos(ObjectName)
	if ExifImageObject[ObjectName] then
		tblScrollBarPos = {};
		tblScrollBarPos.Vertical = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetVertScrollBarPos");
		tblScrollBarPos.Horizontal = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetHorzScrollBarPos");
		return tblScrollBarPos
	end
end

function ExifImage.SaveScrollBarPos(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SaveScrollBarPos");
	end
end

function ExifImage.RestoreScrollBarPos(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "RestoreScrollBarPos");
	end
end

function ExifImage.GetCurrentImageSize(ObjectName)
	if ExifImageObject[ObjectName] then
		tblXXSize = {};
		tblXXSize.Width = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetCurrentImageWidth");
		tblXXSize.Height = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetCurrentImageHeight");
		return tblXXSize
	end
end

function ExifImage.ClearImage(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ClearImage");
	end
end

function ExifImage.PrintToDefaultPrinter(ObjectName)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "PrintToDefaultPrinter");
	end
end

function ExifImage.FitToWindow(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "FitToWindow");
	end
end

function ExifImage.GetCurrentImagePos(ObjectName)
	if ExifImageObject[ObjectName] then
		tblImagePosXY = {}
		tblImagePosXY.X = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetCurrentImageXpos");
		tblImagePosXY.Y = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetCurrentImageYpos");
		return tblImagePosXY
	end
end

function ExifImage.ZoomByClick(ObjectName, ZoomValue)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ZoomByClick", ZoomValue);
	end
end

function ExifImage.CheckValidFormat(ObjectName, FilePath)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "CheckValidFormat", FilePath);
	end
end

function ExifImage.AutoColorEnhance(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "AutoColorEnhance");
	end
end

function ExifImage.AutoContrast(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "AutoContrast");
	end
end

function ExifImage.Brightness(ObjectName, Value, Type)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Brightness", Value, Type);
	end
end

function ExifImage.ColorBalance(ObjectName, PreLum, Type, Red, Green, Blue)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ColorBalance", PreLum, Type, Red, Green, Blue);
	end
end

function ExifImage.ColorLevel(ObjectName, Auto, Low, High, Type)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ColorLevel", Auto, Low, High, Type);
	end
end

function ExifImage.ColorTone(ObjectName, ColorTone)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ColorTone", ColorTone);
	end
end

function ExifImage.Contrast(ObjectName, Value, Type)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Contrast", Value, Type);
	end
end

function ExifImage.ConvertImageTo16Bit(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ConvertImageTo16Bit");
	end
end

function ExifImage.ConvertImageTo24Bit(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ConvertImageTo24Bit");
	end
end

function ExifImage.ConvertImageTo32Bit(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ConvertImageTo32Bit");
	end
end

function ExifImage.ConvertImageTo8BitGray(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "ConvertImageTo8BitGray");
	end
end

function ExifImage.CopyToHBITMAP(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "CopyToHBITMAP");
	end
end

function ExifImage.Cylinder(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Cylinder");
	end
end

function ExifImage.GetBpp(ObjectName)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetBpp");
	end
end

function ExifImage.EdgeDetect(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "EdgeDetect", Value);
	end
end

function ExifImage.Emboss(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Emboss", Value);
	end
end

function ExifImage.FractalTrace(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "FractalTrace", Value);
	end
end

function ExifImage.Gamma(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Gamma", Value);
	end
end

function ExifImage.GetImageOrientation(ObjectName)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetImageOrientation");
	end
end

function ExifImage.GetTifColorDepth(ObjectName, FilePath)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetTifColorDepth", FilePath);
	end
end

function ExifImage.GetTifCompression(ObjectName, FilePath)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetTifCompression", FilePath);
	end
end

function ExifImage.GetResolution(ObjectName)
	if ExifImageObject[ObjectName] then
		tblGetResolution = {}
		tblGetResolution.Horizontal = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetHResolution");
		tblGetResolution.Vertical = Memory.CallObjectFunction(ExifImageObject[ObjectName], "GetVResolution");
		return tblGetResolution
	end
end

function ExifImage.Grid3D(ObjectName, Size, Depth)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Grid3D", Size, Depth);
	end
end

function ExifImage.Halftone(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Halftone");
	end
end

function ExifImage.HueSaturation(ObjectName, Hue, Saturation)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "HueSaturation", Hue, Saturation);
	end
end

function ExifImage.Illusion(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Illusion", Value);
	end
end

function ExifImage.InnerBevel(ObjectName, Width, Smooth)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "InnerBevel", Width, Smooth);
	end
end

function ExifImage.Invert(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Invert");
	end
end

function ExifImage.Lens(ObjectName, Value, KeepBack)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Lens", Value, BoolNum(KeepBack));
	end
end

function ExifImage.LensFlare(ObjectName, numX, numY)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "LensFlare", numX, numY);
	end
end

function ExifImage.LoadFrameFromUrl(ObjectName, strUrl, xPage)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "LoadFrameFromUrl", strUrl, xPage);
	end
end

function ExifImage.LoadFrameWithRatio(ObjectName, FilePath, xPage, Radio)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "LoadFrameWithRatio", FilePath, xPage, Radio);
	end
end

function ExifImage.LoadImageFromFtp(ObjectName, RemoteFilePath)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "LoadImageFromUrl", RemoteFilePath);
	end
end

function ExifImage.LoadImageFromUrl(ObjectName, strUrl)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "LoadImageFromUrl", strUrl);
	end
end

function ExifImage.LoadImageWithRatio(ObjectName, FilePath, Ratio)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "LoadImageWithRatio", FilePath, Ratio);
	end
end

function ExifImage.MedianFilter(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "MedianFilter", Value);
	end
end

function ExifImage.Mosaic(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Mosaic", Value);
	end
end

function ExifImage.Noisy(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Noisy", Value);
	end
end

function ExifImage.OilPaint(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "OilPaint", Value);
	end
end

function ExifImage.PasteFromClipboard(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "PasteFromClipboard");
	end
end

function ExifImage.Posterize(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Posterize", Value);
	end
end

function ExifImage.Ripple(ObjectName, WaveLength, Amplitude, IsSine)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Ripple", WaveLength, Amplitude, IsSine);
	end
end

function ExifImage.RotateByAngle(ObjectName, Angle)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "RotateByAngle", Angle);
	end
end

function ExifImage.Ribbon(ObjectName, Swing, Frequency)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Ribbon", Swing, Frequency);
	end
end

function ExifImage.SetContrast(ObjectName, Contrast)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetContrast", Contrast);
	end
end

function ExifImage.SetImageTitle(ObjectName, Title)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetImageTitle", Title);
	end
end

function ExifImage.SetGamma(ObjectName, Gamma)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetGamma", Gamma);
	end
end

function ExifImage.SetLightness(ObjectName, Lightness)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetLightness", Lightness);
	end
end

function ExifImage.SetResolution(ObjectName, HResolution, VResolution)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetResolution", HResolution, VResolution);
	end
end

function ExifImage.SetSaturation(ObjectName, Saturation)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetSaturation", Saturation);
	end
end

function ExifImage.SetThreshold(ObjectName, Threshold)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetThreshold", Threshold);
	end
end

function ExifImage.Sharp(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Sharp", Value);
	end
end

function ExifImage.Shift(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Shift", Value);
	end
end

function ExifImage.SoftGlow(ObjectName, Radius, Brightness, Contrast)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SoftGlow", Radius, Brightness, Contrast);
	end
end

function ExifImage.Splash(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Splash", Value);
	end
end

function ExifImage.TileReflection(ObjectName, Angle, SquareSize, Curvature)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "TileReflection", Angle, SquareSize, Curvature);
	end
end

function ExifImage.Video(ObjectName, Type)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Video", Type);
	end
end

function ExifImage.Wave(ObjectName, WaveLength, Amplitude)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Wave", WaveLength, Amplitude);
	end
end

function ExifImage.WhirlPinch(ObjectName, Whirl, Pinch)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "WhirlPinch", Whirl, Pinch);
	end
end

function ExifImage.Crop(ObjectName, Left, Top, Width, Height)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Crop", Left, Top, Width, Height);
	end
end

function ExifImage.NewImage(ObjectName, Width, Height, Dpi, BackColor)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "NewImage", Width, Height, Dpi, BackColor);
	end
end

function ExifImage.SetRGB(ObjectName, RColor, GColor, BColor)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetRed", RColor);
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetGreen", GColor);
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetBlue", BColor);
	end
end

function ExifImage.SetRed(ObjectName, Color)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetRed", Color);
	end
end

function ExifImage.SetGreen(ObjectName, Color)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetGreen", Color);
	end
end
function ExifImage.SetBlue(ObjectName, Color)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "SetBlue", Color);
	end
end

function ExifImage.SaveAsEmf(ObjectName, FilePath)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "SaveAsWmf", FilePath);
	end
end

function ExifImage.SaveAsWmf(ObjectName, FilePath)
	if ExifImageObject[ObjectName] then
		return Memory.CallObjectFunction(ExifImageObject[ObjectName], "SaveAsWmf", FilePath);
	end
end

function ExifImage.Recolor(ObjectName, OriginalColor, NewColor)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Recolor", OriginalColor, NewColor);
	end
end

function ExifImage.Solarize(ObjectName, Value)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "Solarize", Value);
	end
end

function ExifImage.AboutBox(ObjectName)
	if ExifImageObject[ObjectName] then
		Memory.CallObjectFunction(ExifImageObject[ObjectName], "AboutBox");
	end
end

function ExifImage.StartEvents(ObjNameA, ObjNameB, ObjNameC, ObjNameD, ObjNameE, ObjNameF, ObjNameG, ObjNameH, ObjNameI, ObjNameJ)
	local function OverObject(strObject)
	m_tblPos = Plugin.GetPos(strObject)
	m_tblSize = Plugin.GetSize(strObject)
	local tMouse=System.GetMousePosition(true);
	local m_nX=tMouse.X
	local m_nY=tMouse.Y
	local bReturn = false;
	if (m_nX >= m_tblPos.X) and (m_nX <= m_tblPos.X + m_tblSize.Width) then
		if (m_nY >= m_tblPos.Y) and (m_nY <= m_tblPos.Y + m_tblSize.Height) then
			bReturn = true;
		end
	end
		return bReturn;
	end
	function ObjectEvents(Event, params)
		if OverObject(ObjNameA) then
			if Event == "Click" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameA),"Click","")
			end
			if Event == "DblClick" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameA),"DblClick","")
			end
		elseif OverObject(ObjNameB) then
			if Event == "Click" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameB),"Click","")
			end
			if Event == "DblClick" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameB),"DblClick","")
			end
		elseif OverObject(ObjNameC) then
			if Event == "Click" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameC),"Click","")
			end
			if Event == "DblClick" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameC),"DblClick","")
			end
		elseif OverObject(ObjNameD) then
			if Event == "Click" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameD),"Click","")
			end
			if Event == "DblClick" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameD),"DblClick","")
			end
		elseif OverObject(ObjNameE) then
			if Event == "Click" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameE),"Click","")
			end
			if Event == "DblClick" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameE),"DblClick","")
			end
		elseif OverObject(ObjNameF) then
			if Event == "Click" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameF),"Click","")
			end
			if Event == "DblClick" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameF),"DblClick","")
			end
		elseif OverObject(ObjNameG) then
			if Event == "Click" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameG),"Click","")
			end
			if Event == "DblClick" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameG),"DblClick","")
			end
		elseif OverObject(ObjNameH) then
			if Event == "Click" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameH),"Click","")
			end
			if Event == "DblClick" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameH),"DblClick","")
			end

		elseif OverObject(ObjNameI) then
			if Event == "Click" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameI),"Click","")
			end
			if Event == "DblClick" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameI),"DblClick","")
			end
		elseif OverObject(ObjNameJ) then
			if Event == "Click" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameJ),"Click","")
			end
			if Event == "DblClick" then
				Page.FireEvent(Page.GetPluginObjectPtr(ObjNameJ),"DblClick","")
			end
		end
	end
end
Solo un par de cosas tienes que tener en cuenta si copias esto al global recuerda que este el activeX en la direccion correcta:
System.RegisterActiveX(_SourceFolder.."\\Autoplay\\Plugins\\EXIFIMAGES\\ExifImage.ocx");
o puedes cambiar la direccion a donde desees siempre y cuando sea ese archivo jajajaja...

también puedes montarlo en cualquier objeto que te de el WindowHandle por ejemplo en un Tree... la linea que tienes que modificar es esta:
Memory.CreateObject(ExifImages.GetWindowHandle(ObjectName), "ExifImage.ExifImageCtrl.1", "ObjectEvents");[lua]

y ponerla así:
[lua]Memory.CreateObject(Tree.GetProperties(ObjectName).WindowHandle, "ExifImage.ExifImageCtrl.1", "ObjectEvents");[lua]

La modificación va en esta función y quedaría así:
[lua]
function ExifImage.CreateObject(ObjectName, ImageFile, AutoSize, ScrollBar)
	if Memory then
		ExifImageObject[ObjectName] = Memory.CreateObject(Tree.GetProperties(ObjectName).WindowHandle, "ExifImage.ExifImageCtrl.1", "ObjectEvents");
		if ExifImageObject[ObjectName] then
			ScrollBar = BoolNum(ScrollBar);
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "ScrollBarMode", ScrollBar);
			Memory.SetObjectProperty(ExifImageObject[ObjectName], "FileName", ImageFile);
			if AutoSize then
				SizeObj = Plugin.GetSize(ObjectName);
				Memory.CallObjectFunction(ExifImageObject[ObjectName], "Resize", SizeObj.Width, SizeObj.Height);
			end
		end
	end
end
aun que yo personalmente prefiero skelton por que le puedes añadir mas eventos...
también se puede mejorar el sistema de eventos seguro que este activeX tendrá algún evento mas si quieres linkearlo en tu mano esta! si tienes alguna duda sobre como funcionan los plugins sobre skelton mírate el tutorial y el archivo de ayuda del object plugin.

Como hacer un Object Plugin usando Skelton

Un saludo.

Re: Ayuda con el Objet plugin ExifImages

Publicado: 24 May 2011 19:29
por Ceone
aun que quiero recordarte que es un plugin experimental por así decirlo decirlo...

Re: Ayuda con el Objet plugin ExifImages

Publicado: 12 Jun 2011 06:28
por xxsolracxx
muchísimas gracias por toda esta ayuda, perdón por contestar tarde, he logrado hacer un programa de diseño y decoración de fotos, se llama photocharly collage - studio, y uso ese plugin, aver si lo chequeas ceone y me das algunas criticas, esta en creaciones con ams de este foro, lo unico importante es que la resolución debe de ser mayor a 1380 por 750 px.