-
Омлет © (12.10.11 12:15) [20]Простите меня, но... OMG! WTF!?
Опиши задачу с самого начала, в том числе про обрезку. -
Омлет © (12.10.11 12:19) [21]> L:=(Image1.Left-Image1.Left);
Дао невыразимо. -
QAZ (12.10.11 13:01) [22]это чо, очередная экранная лупа чтоле?
-
vivaldi (12.10.11 20:43) [23]
procedure TForm1.Timer1Timer(Sender: TObject);
var
Srect,Drect,PosForme:TRect;
iWidth,iHeight:Integer;
iTmpX,iTmpY:Real;
C:TCanvas;
begin
If not IsIconic(Application.Handle) then
begin
PosForme:=Rect(Form1.Left,Form1.Top,Form1.Left+Form1.Width,Form1.Top+Form1.Height);
if not PtInRect(PosForme,Kursor) then
begin
if Panel1.Visible=True then Panel1.Visible:=False;
if Image1.Visible=False then Image1.Visible:=True;
iWidth:=Image1.Width;
iHeight:=Image1.Height;
Drect:=Rect(0,0,iWidth,iHeight);
iTmpX:=iWidth / (Slider.Position * 2);
iTmpY:=iHeight / (Slider.Position * 2);
Srect:=Rect(Kursor.x,Kursor.y,Kursor.x,Kursor.y);
InflateRect(Srect,Round(iTmpX),Round(iTmpY));
// move Srect if outside visible area of the screen
if Srect.Left<0 then OffsetRect(Srect,-Srect.Left,0);
if Srect.Top<0 then OffsetRect(Srect,0,-Srect.Top);
if Srect.Right>Screen.Width then OffsetRect(Srect,-(Srect.Right-Screen.Width),0);
if Srect.Bottom>Screen.Height then OffsetRect(Srect,0,-(Srect.Bottom-Screen.Height));
C:=TCanvas.Create;
try
C.Handle:=GetDC(GetDesktopWindow);
Image1.Canvas.CopyRect(Drect,C,Srect);
finally
C.Free;
end;
//if cbSrediste.Checked=True then
{ begin // show crosshair
with Image1.Canvas do
begin
DmX:=Slider.Position * 2 * (Kursor.X-Srect.Left);
DmY:=Slider.Position * 2 * (Kursor.Y-Srect.Top);
MoveTo(DmX - (iWidth div 4),DmY); // -
LineTo(DmX + (iWidth div 4),DmY); // -
MoveTo(DmX,DmY - (iHeight div 4)); // |
LineTo(DmX,DmY + (iHeight div 4)); // |
end; // with image1.Canvas
end; }// show crosshair
Application.ProcessMessages;
end // Cursor not inside form
else
begin // cursor inside form
if Panel1.Visible=False then Panel1.Visible:=True;
if Image1.Visible=True then Image1.Visible:=False;
end;
end; // IsIconic
end;
procedure TForm1.btn1Click(Sender: TObject);
var L,R,B,T:Extended;
aX,aY :Extended;
begin
ax:= Image1.Picture.Width/Image1.Width;
aY:= Image1.Picture.Height/Image1.Height;
L:=(Image1.Left-Image1.Left);
R:=(L+Image1.Width)*ax;
B:=Image1.top*ay;
T:=B+(Image1.Height*ay);
Image1.Width := round(R-L);
Image1.Height := round(T-B) ;
Image1.Canvas.Draw(round(-L), round(-B), Image1.Picture.Graphic);
img1.Picture.Graphic:=Image1.Picture.Graphic;
end;
Этот код я взял из программы zoom(увеличение части изображения).Не совсем понимаю как он работает.Но результат таков он показывает в image1 часть изображения возле курсора когда я вне формы.При нажатии на TForm1.btn1Click он дублирует это изображение в img1.После этого я могу сохранить его,но с маленьким разрешением.А мне нужно растянуть его. -
vivaldi (13.10.11 09:24) [24]Все я разобрался как увеличивать изображение,с одной проблемкой.Всем спасибо.Создам новую тему
-
Понимаю что лютый некропостинг, но не могу не поблагодарить RGV
за алгоритм стретча со сглаживанием.
Весь моск себе вынес, пытаясь сгенерить нормальные превьюшки, и тут такое простое и эффективное решение.
Огромное спасибо! -
vmc (05.03.15 17:21) [26]Поддержу всё же)
Спасибо, RGV
Я люблю голубые ладони
И железный занавес на красном фоне
Сырые губы под вороньём
И тела изъеденные червём
Я люблю глухое эхо
И гнилую жижу в моей голове
Родную плесень икоты бля бу
Я некрофил,я люблю себя
Рождённому мёртвым
Пришейте пуговицы вместо глаз
Некрофилия некрофилия
Моя изнурённая некрофилия
Я люблю умирать напоказ
Погружаясь по горло в любую грязь
Я люблю путёвый оргазм
И распухший от кала свой унитаз
А рано утром
Я встану в очередь в мавзолей
Некрофилия некрофилия
Моя изнурённая некрофилия
Я люблю голубые ладони
И железный занавес на красном фоне
Сырые губы под вороньём
И тела изъеденные червём
Я люблю глухое эхо
И гнилую жижу в моей голове,
Родную плесень икоты бля бу
Я некрофил,я люблю себя
Рано утром
Мы встанем в очередь в мавзолей
Некрофилия некрофилия
Моя изнурённая некрофилия
Подробности на официальном сайте «Гражданской Обороны» http://www.gr-oborona.ru/texts/1056909643.html#ixzz3TWc5bkLZ