Конференция "Media" » изменение размеров картинки Дельфей и ее сохранение... [D7, WinXP]
 
  • Омлет © (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]
    Все я разобрался как увеличивать изображение,с одной проблемкой.Всем спасибо.Создам новую тему
  • comp © (09.09.13 10:47) [25]
    Понимаю что лютый некропостинг, но не могу не поблагодарить RGV
    за алгоритм стретча со сглаживанием.
    Весь моск себе вынес, пытаясь сгенерить нормальные превьюшки, и тут такое простое и эффективное решение.
    Огромное спасибо!
  • vmc (05.03.15 17:21) [26]
    Поддержу всё же)
    Спасибо, RGV

    Я люблю голубые ладони
    И железный занавес на красном фоне
    Сырые губы под вороньём
    И тела изъеденные червём
    Я люблю глухое эхо
    И гнилую жижу в моей голове
    Родную плесень икоты бля бу
    Я некрофил,я люблю себя
         
            Рождённому мёртвым
            Пришейте пуговицы вместо глаз

            Некрофилия некрофилия
            Моя изнурённая некрофилия

    Я люблю умирать напоказ
    Погружаясь по горло в любую грязь
    Я люблю путёвый оргазм
    И распухший от кала свой унитаз

            А рано утром
            Я встану в очередь в мавзолей

            Некрофилия некрофилия
            Моя изнурённая некрофилия

    Я люблю голубые ладони
    И железный занавес на красном фоне
    Сырые губы под вороньём
    И тела изъеденные червём
    Я люблю глухое эхо
    И гнилую жижу в моей голове,
    Родную плесень икоты бля бу
    Я некрофил,я люблю себя

            Рано утром
            Мы встанем в очередь в мавзолей

            Некрофилия некрофилия
            Моя изнурённая некрофилия

    Подробности на официальном сайте «Гражданской Обороны» http://www.gr-oborona.ru/texts/1056909643.html#ixzz3TWc5bkLZ
 
Конференция "Media" » изменение размеров картинки Дельфей и ее сохранение... [D7, WinXP]
Есть новые Нет новых   [118685   +14][b:0][p:0.002]